এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখব যেটি দেওয়া প্রোডাক্টের জন্য দুটি ভিন্ন প্রাইম নম্বর বের করবে। কিছু উদাহরণ দেখি।
ইনপুট - 21
আউটপুট - 3 7
এখানে, আমাদের দেওয়া প্রোডাক্টের চেয়ে ছোট সব প্রাইম নম্বর থাকতে হবে। একবার সেগুলো পাওয়া গেলে, পেয়ার বের করা সহজ। নিচের ধাপগুলো ফলো করুন সমস্যাটি সমাধান করতে।
- একটি প্রোডাক্ট এবং একটি বুলিয়ান অ্যারে ইনিশিয়ালাইজ করুন যেটি স্টোর করবে রেঞ্জের সংখ্যাগুলো প্রাইম কিনা।
- দেওয়া প্রোডাক্টের চেয়ে ছোট সব প্রাইম নম্বর বের করে একটি অ্যারেতে স্টোর করুন।
- দেওয়া প্রোডাক্ট পর্যন্ত ইটারেট করুন।
- যতি কারেন্ট নম্বর প্রাইম হয় এবং n / current_number ও প্রাইম হয়, তবে চেক করুন সেগুলো ভিন্ন কিনা।
- যদি ভিন্ন হয়, তবে সেগুলো প্রিন্ট করুন।
উদাহরণ
কোডটি দেখি।
#include <bits/stdc++.h>
using namespace std;
bool primes(int n, bool primeStatus[]) {
primeStatus[0] = primeStatus[1] = false;
for (int i = 2; i <= n; i++) {
primeStatus[i] = true;
}
for (int i = 2; i * i <= n; i++) {
if (primeStatus[i] == true) {
for (int j = i * 2; j <= n; j += i)
primeStatus[j] = false;
}
}
}
int main() {
int n = 21;
bool primeStatus[n + 1], pairsFound = false;
primes(n, primeStatus);
for (int i = 2; i < n; i++) {
int pair = n / i;
if (primeStatus[i] && primeStatus[pair] && pair != i && pair * i == n) {
cout << i << " " << pair << endl;
pairsFound = true;
break;
}
}
if (!pairsFound) {
cout << "No pairs";
}
return 0;
}
আউটপুট
3 7
উপসংহার
টিউটোরিয়ালে যদি কোনো প্রশ্ন থাকে, তবে কমেন্ট সেকশনে জানান।