एक सुपर-अभाज्य संख्या एक संख्या है जो सभी अभाज्य संख्याओं के क्रम में अभाज्य संख्या की स्थिति लेती है। उच्च क्रम वाले अभाज्य संख्याओं के रूप में भी जाना जाता है, ये संख्याएँ अभाज्य संख्या के अनुक्रम में स्थान लेती हैं जो अभाज्य संख्या के बराबर होती है। कुछ सुपर प्राइम नंबर 3,5,11,1 7…
. हैंउदाहरण के लिए आइए 13 से कम के सभी सुपर प्राइम नंबर खोजें -
इनपुट
13
आउटपुट
3, 5, 11.
स्पष्टीकरण - 13 से कम की अभाज्य संख्या ज्ञात करने के लिए हम सभी अभाज्य संख्याएँ पाएंगे जो 13 से कम हैं। इसलिए, दिखाएँ कि 13 से छोटी सभी अभाज्य संख्याएँ 2,3,5,7,11,13 हैं। अब, 2 एक अभाज्य संख्या है, इसलिए हम अभाज्य संख्या को स्थिति पर सुपर अभाज्य संख्या मानेंगे। इसका मतलब है कि तीन एक अभाज्य संख्या है। इसी तरह, 3 स्थान पर 5, और 5 की स्थिति में 11 सुपर प्राइम नंबर हैं।
सभी सुपर-प्राइम नंबरों को खोजने के लिए जो किसी दिए गए प्राइम नंबर से कम हैं, पहले सभी प्राइम नंबर ढूंढेंगे जो उस नंबर से कम हैं और फिर एक सरणी में स्टोर करें। इस सरणी से केवल उन नंबरों को प्रिंट किया जाएगा जिनकी स्थिति किसी भी अभाज्य संख्या के बराबर है। उदाहरण के लिए, अभाज्य संख्या 2nd 3rd 5th 7th 11th 13th…. माना जाता है।
उदाहरण
#include<iostream> using namespace std; bool SieveOfEratosthenes(int n, bool isPrime[]) { isPrime[0] = isPrime[1] = false; for (int i=2; i<=n; i++) isPrime[i] = true; for (int p=2; p*p<=n; p++) { if (isPrime[p] == true) { for (int i=p*2; i<=n; i += p) isPrime[i] = false; } } } void superPrimes(int n) { bool isPrime[n+1]; SieveOfEratosthenes(n, isPrime); int primes[n+1], j = 0; for (int p=2; p<=n; p++) if (isPrime[p]) primes[j++] = p; for (int k=0; k<j; k++) if (isPrime[k+1]) cout << primes[k] << " "; } int main() { int n = 343; cout << "Super-Primes less than "<< n << " are :"<<endl; superPrimes(n); return 0; }
आउटपुट
Super-Primes less than 343 are : 3 5 11 17 31 41 59 67 83 109 127 157 179 191 211 241 277 283 331