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

C++ में N तक के सभी प्रोथ अभाज्य संख्याएं प्रिंट करें


इस समस्या में, हमें एक पूर्णांक N दिया गया है और हमें N से कम या बराबर सभी प्रोथ अभाज्य संख्याओं को प्रिंट करना है।

प्रोथ अभाज्य संख्या

एक प्रोथ अभाज्य संख्या एक धनात्मक पूर्णांक है जिसका मान n = k * 2^n + 1 के रूप में दर्शाया जा सकता है। जहां k एक विषम धनात्मक पूर्णांक है और n एक धनात्मक पूर्णांक है और दोनों 2^n > k को संतुष्ट करते हैं।

उदाहरण - 3, 5, 13...

विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -

इनपुट: N = 23 आउटपुट: 3, 5, 13, 17

इसके लिए, हम N से कम सभी अभाज्य संख्याएं ढूंढेंगे (इसके लिए हम एराटोस्थनीज की छलनी का उपयोग करेंगे)। और जांचेंगे कि प्रत्येक अभाज्य संख्या प्रोथ संख्या है या नहीं। और सभी प्रोथ संख्याओं को प्रिंट करें।

उदाहरण

#include <bits/stdc++.h> using namespace std; int prime[1000]; void SieveOfEratosthenes(int n){    for (int i = 1; i <= n + 1; i++)       prime[i] = true;    prime[1] = false;    for (int p = 2; p * p <= n; p++) {       if (prime[p] == true) {          for (int i = p * p; i <= n; i += p)             prime[i] = false;       }    } } bool isTwosExponent(int n){    return (n && !(n & (n - 1))); } bool isaProthNumber(int n){    int k = 1;    while (k < (n / k)) {       if (n % k == 0) {          if (isTwosExponent(n / k))             return true;       }       k = k + 2;    }    return false; } bool isaProthPrime(int n){    if (isaProthNumber(n - 1)) {       if(prime[n])          return true;       else          return false;    }    else       return false; } int main(){    int n = 23;    cout<<"Proth Prime Numbers less than or equal to "<<n<<" are :\n";    SieveOfEratosthenes(n);    for (int i = 1; i <= n; i++)       if (isaProthPrime(i))          cout<<i<<"\t";    return 0; }

आउटपुट

23 से कम या बराबर प्रोथ अभाज्य संख्याएं हैं -

3 5 13 17

  1. C++ में बाइनरी ट्री के सभी इंटरनल नोड्स प्रिंट करना C++ में बाइनरी ट्री के सभी इंटरनल नोड्स प्रिंट करना

    इस समस्या में, हमें एक बाइनरी ट्री दी गई है और हमें बाइनरी ट्री के सभी इंटरनल नोड्स प्रिंट करने हैं। बाइनरी ट्री बाइनरी ट्री एक ट्री है जिसमें एक नोड के अधिकतम 2 चाइल्ड नोड्स हो सकते हैं। नोड या वर्टेक्स में कोई नोड नहीं, एक चाइल्ड या दो चाइल्ड नोड्स हो सकते हैं। इंटरनल नोड इंटरनल नोड वह नोड है ज

  1. C++ में दिए गए नोड से दूरी K पर सभी नोड्स प्रिंट करना C++ में दिए गए नोड से दूरी K पर सभी नोड्स प्रिंट करना

    इस समस्या में, हमें एक बाइनरी ट्री, एक टारगेट नोड और एक पूर्णांक K दिया गया है। हमें ट्री के उन सभी नोड्स को प्रिंट करना है जो टारगेट नोड से दूरी K पर हैं। बाइनरी ट्री बाइनरी ट्री एक विशेष ट्री है जिसके प्रत्येक नोड में अधिकतम दो नोड्स होते हैं (एक/दो/कोई नहीं)। उदाहरण K = 2 टारगेट नोड: 9 आउटपुट

  1. C++ में बाइनरी ट्री में K लीफ वाले सभी नोड्स प्रिंट करना C++ में बाइनरी ट्री में K लीफ वाले सभी नोड्स प्रिंट करना

    इस समस्या में, हमें एक बाइनरी ट्री और एक पूर्णांक K दिया गया है और हमें बाइनरी ट्री के उन सभी नोड्स को प्रिंट करना है जिनके चाइल्ड सबट्री में K लीफ हैं। बाइनरी ट्री बाइनरी ट्री एक विशेष ट्री है जिसके प्रत्येक नोड में अधिकतम दो नोड्स होते हैं (एक/दो/कोई नहीं)। लीफ नोड बाइनरी ट्री का लीफ नोड ट्री क