আমাদের পরিসীমা ভেরিয়েবল START এবং END দেওয়া হয়েছে। লক্ষ্য হল [START,END] পরিসরে মৌলিক সংখ্যার গণনা করা।
1 ব্যতীত অন্য কোন সংখ্যা এটিকে সম্পূর্ণরূপে ভাগ করে এবং 1 এবং i/2 এর মধ্যে আছে কিনা তা পরীক্ষা করে আমরা পরিসরের i সংখ্যাটি প্রাইম কিনা তা পরীক্ষা করব। যদি প্রাইম হয়। সংখ্যা বৃদ্ধি।
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট
শুরু=1 শেষ=20
আউটপুট
রেঞ্জে প্রাইম :৮
ব্যাখ্যা
1 এবং 20 এর মধ্যে প্রাইমগুলি হল:2,3,5,7,11,13,17,19৷
ইনপুট
শুরু=100 শেষ=200
আউটপুট
রেঞ্জে প্রাইম :21
ব্যাখ্যা
100 এবং 200 এর মধ্যে প্রাইমগুলি হল:101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 1919>নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
আমরা পরিসীমা ভেরিয়েবলকে START এবং END হিসাবে নিই।
-
ফাংশন countPrimes(int strt,int end) রেঞ্জে প্রাইম গণনা প্রদান করে।
-
প্রারম্ভিক পরিবর্তনশীল গণনাকে 0 হিসাবে নিন।
-
i=strt থেকে i <=end
এর জন্য লুপ ব্যবহার করে ট্র্যাভার্স করুন -
প্রতিটি সংখ্যা i নিন এবং isprime(i) ব্যবহার করে এটি প্রাইম কিনা তা পরীক্ষা করুন।
-
ফাংশন isprime(int num) সংখ্যাটি নন প্রাইম হলে 0 এবং প্রাইম হলে 1 প্রদান করে।
-
লুপ শেষ হওয়ার পরে, ফলাফল হিসাবে গণনা করুন।
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;int isprime(int num){ if (num <=1) রিটার্ন 0; জন্য (int i =2; i <=num/2; i++){ if (num % i ==0) { ফেরত 0; } } রিটার্ন 1; //যদি উভয়ই ব্যর্থ হয় তাহলে num হল prime}int countPrimes(int strt,int end){int count=0; for(int i=strt;i<=end;i++){ if(isprime(i)==1) { count++; } } রিটার্ন গণনা;} int main(){ int START=10, END=20; cout < আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেরেঞ্জে প্রাইম :4