इस समस्या में, हमें एक संख्या N दी जाती है और हमें N से कम या उसके बराबर सभी अभाज्य संख्याओं को प्रिंट करना होता है।
आइए विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -
Input: 10 Output: 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