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

सी++ में पियरपोंट प्राइम

इस समस्या में, हमें एक संख्या n दी गई है। हमारा काम सभी पियरपोंट अभाज्य संख्याओं . को प्रिंट करना है n से कम।

पियरपोंट प्राइम संख्या एक विशेष प्रकार की अभाज्य संख्या होती है जो कि रूप की होती है,

p=2 i . 3 k + 1.

जहां p एक अभाज्य संख्या है, और i और k कुछ पूर्णांक हैं।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट - एन =50

आउटपुट - 2, 3, 5, 7, 13, 17, 19, 37

इस समस्या को हल करने के लिए, हमें उन सभी अभाज्य संख्याओं को खोजना होगा जो इस शर्त का पालन करती हैं। इसके लिए हम 2 और 3 की घातों के गुणनखंडों वाली एक संख्या प्राप्त करेंगे और सभी अभाज्य संख्याएँ ज्ञात करेंगे। और उन नंबरों को प्रिंट करें जो दोनों हैं, एक अभाज्य संख्या जो शर्त का पालन करती है।

उदाहरण

हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,

#include <bits/stdc++.h>
using namespace std;
void printPierpontPrimes(int n){
   bool arr[n+1];
   memset(arr, false, sizeof arr);
   int two = 1, three = 1;
   while (two + 1 < n) {
      arr[two] = true;
      while (two * three + 1 < n) {
         arr[three] = true;
         arr[two * three] = true;
         three *= 3;
      }
      three = 1;
      two *= 2;
   }
   vector<int> primes;
   for (int i = 0; i < n; i++)
   if (arr[i])
      primes.push_back(i + 1);
   memset(arr, false, sizeof arr);
   for (int p = 2; p * p < n; p++) {
      if (arr[p] == false)
         for (int i = p * 2; i< n; i += p)
            arr[i] = true;
   }
   for (int i = 0; i < primes.size(); i++)
      if (!arr[primes[i]])
      cout<<primes[i]<<"\t";
}
int main(){
   int n = 50;
   cout<<"All Pierpont Prime Numbers less than "<<n<<" are :\n";
   printPierpontPrimes(n);
   return 0;
}

आउटपुट

All Pierpont Prime Numbers less than 50 are :
2    3    5    7    13    17    19    37

  1. सी ++ में मेर्सन प्राइम नंबर।

    विवरण गणित में, मेर्सन प्राइम एक अभाज्य संख्या है जो दो की शक्ति से एक कम है। अर्थात्, यह किसी पूर्णांक n के लिए Mn =2n - 1 के रूप की एक अभाज्य संख्या है। इनपुट धनात्मक पूर्णांक n से छोटे सभी Mersenne Primes को प्रिंट करने के लिए एक C++ प्रोग्राम लिखें। घातांक n जो Mersenne primes देते हैं वे 2,

  1. C++ में बैलेंस्ड प्राइम

    बैलेंस्ड प्राइम संख्या एक अभाज्य संख्या है जिसका पिछली और अगली अभाज्य संख्याओं के लिए समान अंतर है। यानी यह निकटतम अगले अभाज्य और पिछले अभाज्य का माध्य है। एक अभाज्य संख्या के संतुलित अभाज्य होने के लिए, उसे निम्न सूत्र का पालन करना चाहिए - पीएन =(पी(एन-1) + पी(एन+1)) / 2 जहाँ n एक अभाज्य संख्या

  1. जाँच करें कि C++ में कोई संख्या पूर्ण प्रधान है या नहीं

    यहां हम देखेंगे कि कैसे जांचा जाता है कि कोई संख्या पूर्ण अभाज्य है या नहीं। एक संख्या को पूर्ण अभाज्य कहा जाता है, यदि वह अभाज्य है, और उसके सभी अंक भी अभाज्य हैं। मान लीजिए एक संख्या 37 है, यह पूर्ण अभाज्य है। लेकिन 97 पूर्ण अभाज्य नहीं है क्योंकि 9 एक अभाज्य संख्या नहीं है। एक कुशल तरीका यह है क