इस समस्या में, हमें एक संख्या 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