Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ प्रोग्राम: सुंदरम की छलनी द्वारा दी गई सीमा में अभाज्य संख्याएं उत्पन्न करना


यह C++ प्रोग्राम दी गई सीमा में अभाज्य संख्याएं उत्पन्न करने के लिए सुंदरम की छलनी को लागू करता है। इस एल्गोरिदम की खोज 1934 में सुंदरम ने की थी।

एल्गोरिदम

शुरुआत printPrimes(n) यहां हम n से छोटी अभाज्य संख्याएं ढूंढते हैं, हम n-2 को आधा करते हैं। इसे New कहते हैं। New = (n-2)/2; एक सरणी marked[n] बनाएं जिसका उपयोग i+j+2ij रूप की संख्याओं को दूसरों से अलग करने के लिए किया जाता है जहां 1 <= i <= j marked[] के सभी प्रविष्टियों को गलत के रूप में आरंभ करें। i+j+2ij रूप की सभी संख्याओं को सही के रूप में चिह्नित करें जहां 1 <= i <= j i=1 से New तक a) j = i; b) लूप जब तक (i + j + 2*i*j) 2, तो 2 को पहली अभाज्य संख्या के रूप में प्रिंट करें। शेष अभाज्य संख्याएं 2i + 1 रूप की होती हैं जहां i अनचिह्नित संख्याओं का सूचकांक है। तो उन सभी i के लिए 2i + 1 प्रिंट करें जहां marked[i] गलत है। अंत

उदाहरण कोड

#include <bits/stdc++.h> using namespace std; int SieveOfSundaram(int m) {    int N= (m-2)/2;    bool marked[N + 1];    memset(marked, false, sizeof(marked));    for (int i=1; i<=N; i++)       for (int j=i; (i + j + 2*i*j) <= N; j++)          marked[i + j + 2*i*j] = true;       if (m > 2)          cout << 2 << " ";    for (int i=1; i<=N; i++)       if (marked[i] == false)          cout << 2*i + 1 << " "; } int main(void) { int m = 10; SieveOfSundaram(m); return 0; }

आउटपुट

2 3 5 7

  1. - C++ का उपयोग करके अभाज्य संख्याएं खोजने का सबसे तेज़ एल्गोरिदम कौन सा है?

    एराटोस्थनीज की छलनी (Sieve of Eratosthenes) n से छोटी अभाज्य संख्याएं खोजने के सबसे कुशल तरीकों में से एक है जब n लगभग 10 मिलियन से छोटा हो। एराटोस्थनीज की छलनी को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है। उदाहरण #include <bits/stdc++.h> using namespace std; void SieveOfEratosthenes(int

  1. - C++ में फ़ंक्शन का उपयोग करके दो अंतराल के बीच अभाज्य संख्याएं प्रदर्शित करने का प्रोग्राम

    एक अभाज्य संख्या एक पूर्ण संख्या है जो एक से बड़ी होती है और अभाज्य संख्या के केवल कारक एक और स्वयं होने चाहिए। कुछ पहली अभाज्य संख्याएँ 2, 3, 5, 7, 11, 13, 17 आदि हैं। दो अंतराल के बीच कई अभाज्य संख्याएँ हो सकती हैं। उदाहरण के लिए, अंतराल 5 और 20 के बीच अभाज्य संख्याएँ 5, 7, 11, 13, 17 और 19 हैं। द

  1. - C++ में दो अंतराल के बीच अभाज्य संख्याएं प्रदर्शित करने का प्रोग्राम

    एक अभाज्य संख्या एक पूर्ण संख्या है जो एक से बड़ी होती है और अभाज्य संख्या के केवल कारक एक और स्वयं होने चाहिए। कुछ पहली अभाज्य संख्याएँ 2, 3, 5, 7, 11, 13, 17 आदि हैं। दो अंतराल के बीच कई अभाज्य संख्याएँ हो सकती हैं। उदाहरण के लिए, अंतराल 5 और 20 के बीच अभाज्य संख्याएँ हैं: 5, 7, 11, 13, 17 और 19।