এই সমস্যায়, আমাদের একটি সংখ্যা দেওয়া হয়েছে এবং আমাদের সমস্ত মৌলিক সংখ্যা 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