এই সমস্যায়, আমরা একটি সংখ্যা n দেওয়া হয়. আমাদের কাজ হল এর আদি সংখ্যা প্রিন্ট করা।
প্রাথমিক নম্বর (Pn#) এমন একটি সংখ্যা যা প্রথম n মৌলিক সংখ্যার গুণফল।
আদি সংখ্যা n সংখ্যার ফ্যাক্টোরিয়ালের অনুরূপ। পার্থক্য হল যে ফ্যাক্টরিয়াল যেকোনো সংখ্যা হতে পারে কিন্তু আদি সংখ্যার ক্ষেত্রে, সমস্ত মৌলিক সংখ্যা ব্যবহার করা হয়।
সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,
Input: N = 4 Output 210 Explanation: Primorial number, Pn# = 2 * 3 * 5 * 7 = 210
এই সমস্যা সমাধানের জন্য আমাদের প্রথম n মৌলিক সংখ্যা বের করতে হবে। n পর্যন্ত সমস্ত মৌলিক সংখ্যার গুণফল প্রিন্ট করুন যা আদি সংখ্যার মান।
উদাহরণ
আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম,
#include<bits/stdc++.h>
using namespace std;
const int MAX = 1000000;
vector <int> primeNumbers;
void findPrimes() {
bool marked[MAX/2 + 1] = {0};
for (int i = 1; i <= (sqrt(MAX)-1)/2 ; i++)
for (int j = (i*(i+1))<<1 ; j <= MAX/2 ; j += 2*i +1)
marked[j] = true;
primeNumbers.push_back(2);
for (int i=1; i<=MAX/2; i++)
if (marked[i] == false)
primeNumbers.push_back(2*i + 1);
}
int findPrimorial(int n) {
findPrimes();
int result = 1;
for (int i=0; i<n; i++)
result = result * primeNumbers[i];
return result;
}
int main() {
int N = 6;
cout<<"Primorial(P#) of first "<<N<<" prime numbers is "<<findPrimorial(N)<<endl;
return 0;
} আউটপুট
Primorial(P#) of first 6 prime numbers is 30030