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

सी ++ प्रोग्राम सुंदरम की छलनी का उपयोग करके दी गई सीमा के बीच अभाज्य संख्याएँ उत्पन्न करने के लिए

यह दी गई रेंज के बीच प्राइम नंबर जेनरेट करने के लिए सुंदरम की चलनी को लागू करने के लिए C++ प्रोग्राम है। इस एल्गोरिथम की खोज 1934 में सुंदरम ने की थी।

एल्गोरिदम

Begin
   printPrimes(n)
   Here we find out primes
   smaller than n, we reduce n-2 to half. We call it New.
   New = (n-2)/2;
   Create an array marked[n] that is going
   to be used to separate numbers of the form i+j+2ij from
   others where 1 <= i <= j
   Initialize all entries of marked[] as false.
   Mark all numbers of the form i + j + 2ij as true
   where 1 <= i <= j
   for i=1 to New
      a) j = i;
      b) Loop While (i + j + 2*i*j) 2, then print 2 as first prime.
      Remaining primes are of the form 2i + 1 where i is
      index of NOT marked numbers. So print 2i + 1 for all i
      such that marked[i] is false.
End

उदाहरण कोड

#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++ का उपयोग करके अभाज्य संख्याओं को खोजने के लिए सबसे तेज़ एल्गोरिथम कौन सा है?

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

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

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

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

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