এটি একটি নির্দিষ্ট রেঞ্জের মধ্যে প্রাইম সংখ্যা প্রিন্ট করার প্রোগ্রাম।
অ্যালগরিদম
শুরু
stl নামক ইউজার ডিফাইন ডেটা টাইপ ডিক্লেয়ার করুন
number ভেক্টর stl টাইপে ডিক্লেয়ার করুন
a ভেরিয়েবল stl টাইপে ডিক্লেয়ার করুন
Prime_Number ভেক্টর বুলিয়ান টাইপে ডিক্লেয়ার করুন
Prime_Number[0] = false
Prime_Number[1] = false
b ইন্টিজার টাইপে ডিক্লেয়ার করুন
b = sqrt(a) ইনিশিয়ালাইজ করুন
for (stl pr=2; pr<=b; pr++)
if (Prime_Number[pr]) হয়, তবে
for (stl i=pr*2; i<=a; i += pr)
Prime_Number[i] = false
result ভেক্টর টাইপে ডিক্লেয়ার করুন
for (int i=0; i
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long int stl;
vector<stl> number(stl a) {
vector<bool> Prime_Number(a+1, true);
Prime_Number[0] = false;
Prime_Number[1] = false;
int b = sqrt(a);
for (stl pr = 2; pr <= b; pr++) {
if (Prime_Number[pr]) {
for (stl i = pr*2; i <= a; i += pr)
Prime_Number[i] = false;
}
}
vector<stl> result;
for (int i = 0; i < a; i++)
if (Prime_Number[i])
result.push_back(i);
return result;
}
bool remove_zero(stl i) {
// ভেক্টর থেকে শূন্য মুছে ফেলতে ব্যবহৃত
return i == 0;
}
vector<stl> Number_Range(stl First_Num, stl Last_Num) {
vector<stl> s1 = number(First_Num); // ০ থেকে First_Num পর্যন্ত প্রাইম বের করুন
vector<stl> s2 = number(Last_Num); // ০ থেকে Last_Num পর্যন্ত প্রাইম বের করুন
vector<stl> result(Last_Num - First_Num);
set_difference(s2.begin(), s2.end(), s1.begin(), s2.end(), result.begin()); // দুটি ভেক্টরের সেট ডিফারেন্স
vector<stl>::iterator itr = remove_if(result.begin(), result.end(), remove_zero); // অতিরিক্ত শূন্য মুছুন
result.resize(itr - result.begin());
return result;
}
int main(void) {
stl First_Num = 20, Last_Num = 50;
vector<stl> result = Number_Range(First_Num, Last_Num);
cout << "The Prime Numbers from " << First_Num << " to " << Last_Num << " are: ";
for (auto i : result)
cout << i << ' ';
return 0;
}
আউটপুট
The Prime Numbers from 20 to 50 are: 23 29 31 37 41 43 47