इस समस्या में, हमें एक संख्या N दी गई है और हमें N से कम या बराबर सभी अभाज्य संख्याओं को प्रिंट करना है।
विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -
इनपुट: 10 आउटपुट: 2 3 5 7
एक अभाज्य संख्या वह संख्या है जिसे केवल एक और स्वयं संख्या से विभाजित किया जा सकता है। उदाहरण: 2, 3।
एक सरल दृष्टिकोण 2 से N तक पुनरावृति करना और संख्या को इससे विभाजित करना है। यदि संख्या विभाज्य नहीं है, तो यह एक अभाज्य संख्या है। संख्या प्रिंट करें। इसे तब तक करें जब तक संख्या N के बराबर न हो जाए। यह दृष्टिकोण इतना कुशल नहीं है।
एक अधिक प्रभावी दृष्टिकोण 2 से √N तक पुनरावृति करके अभाज्य संख्या की जांच करना होगा।
उदाहरण
#include <bits/stdc++.h> using namespace std; bool isPrimeNumber(int n){ if (n <= 1) return false; if (n <= 3) return true; if (n % 2 == 0 || n % 3 == 0) return false; for (int i = 5; i * i <= n; i = i + 6) if (n % i == 0 || n % (i + 2) == 0) return false; return true; } void printPrime(int n){ for (int i = 2; i <= n; i++) { if (isPrimeNumber(i)) cout<<i<<" "; } } int main(){ int n = 41; cout<<"Prime numbers less than or equal to "<<n<<" are \n"; printPrime(n); } आउटपुट
41 से कम या बराबर अभाज्य संख्याएं हैं
2 3 5 7 11 13 17 19 23 29 31 37 41