इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया जाता है, और हमें n से कम या उसके बराबर सभी अभाज्य चौगुनी मुद्रित करनी होती है।
प्रमुख चौगुनी {p, p +2 . के रूप में परिकलित चार अभाज्य संख्याओं का समुच्चय है ,p +6 , पी +8 }. उदाहरण - 5 7 11 13.
आइए समस्या को समझने के लिए एक उदाहरण लेते हैं -
Input: N = 15 Output: 5 7 11 13.
इस समस्या को हल करने के लिए, एक सरल तरीका यह है कि अभाज्य संख्या p के सभी चौगुने उत्पन्न करें और जाँचें कि क्या सभी p, p +2 , पी +6 , पी +8 अभाज्य संख्याएँ हैं। यह समाधान आसान है लेकिन संकलक के लिए अधिक जटिल है।
एक अन्य कुशल तरीका है सभी अभाज्य संख्याओं (इराटोस्थनीज की छलनी का उपयोग करके) को पसंद करना और उन्हें एक निश्चित सीमा तक एक सरणी में संग्रहीत करना। और सरणी को पार करें और p, p +2 . की जांच करें , पी +6 , पी +8 प्राइम हैं या नहीं और अगर वे सभी प्राइम हैं तो प्रिंट करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; #define MAX 100000 bool prime[MAX]; void primeNumberGenerator() { memset(prime, true, sizeof(prime)); for (int p = 2; p * p < MAX; p++) { if (prime[p] == true) { for (int i = p * 2; i < MAX; i += p) prime[i] = false; } } } void printPrimeQuadruplet(int n) { for (int i = 0; i < n - 7; i++) { if (prime[i] && prime[i + 2] && prime[i + 6] && prime[i + 8]) { cout<<i<<" "<<i+2<<" "<<i+6<<" "<<i+8<<endl; } } } int main() { primeNumberGenerator(); int n = 42; cout<<"All prime Quadruplets are :\n"; printPrimeQuadruplet(20); return 0; }
आउटपुट
सभी प्रमुख चौगुनी हैं -
5 7 11 13 11 13 17 19