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

C++ STL का उपयोग करके दी गई श्रेणी में अभाज्य संख्याओं को प्रिंट करें

यह एक निश्चित सीमा में अभाज्य संख्याओं को मुद्रित करने का कार्यक्रम है।

एल्गोरिदम

Begin
   Declare a user define datatype stl.
   Declare a vector number to the stl datatype.
   Declare variable a to the stl datatype.
   Declare vector Prime_Number to the Boolean datatype.
      Prime_Number[0] = false.
      Prime_Number[1] = false.
   Declare b to the integer datatype.
      Initialize b = sqrt(a).
   for (stl pr=2; pr<=b; pr++)
      if (Prime_Number[pr]) then
         for (stl i=pr*2; i<=a; i += pr)
            Prime_Number[i] = false.
   Declare result to the vector type.
   for (int i=0;i<a;i++)
      if (Prime_Number[i]) then
         result.push_back(i).
      return result.
End
Begin
   Declare function remove_zero() to the Boolean type.
   Declare i to the stl datatype.
   Return i = 0.
End
Begin
   Declare a vector Number_Range to the stl datatype.
   Declare First_Num, Last_Num to the stl datatype.
   Pass them as parameter.
   Declare two vector s1 and s2 to the stl datatype.
      Initialize s1 = number(First_Num) to find primes from o to First_Num.
      Initialize s2 = number(Last_Num) to find primes from o to Last_Num.
   Declare vector result(Last_Num-First_Num) to the stl datatype.
   Call set_difference(s2.begin(), s2.end(), s1.begin(), s2.end(), result.begin()) to find set difference of two vectors.
   Declare an iterator itr to the vector type.
      Initialize itr = remove_if(result.begin(),result.end(),remove_zero) to remove extra zeros.
   Call resize (itr-result.begin()) to resize the result.
   Return result.
   Declare First_Num, Last_Num to the stl datatype.
      Initialize First_Num = 20, Last_Num = 50.
   Declare a vector result to the stl datatype.
      Initialize result = Number_Range(First_Num,Last_Num).
   Print "The Prime Numbers from 20 to 50 are: “
   for (auto i:result)
      Print the values of i.
End.

उदाहरण

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long int stl;
vector<stl> number(stl a) {
   vector<bool> Prime_Number(a+1,true);
   Prime_Number[0] = false;
   Prime_Number[1] = false;
   int b = sqrt(a);
   for (stl pr=2; pr<=b; pr++) {
      if (Prime_Number[pr]) {
         for (stl i=pr*2; i<=a; i += pr)
            Prime_Number[i] = false;
      }
   }
   vector<stl> result;
   for (int i=0;i<a;i++)
      if (Prime_Number[i])
         result.push_back(i);
   return result;
}
bool remove_zero(stl i) {     // Used to remove zeros from a vector
   return i == 0;
}
vector<stl> Number_Range(stl First_Num,stl Last_Num) {
   vector<stl> s1 = number(First_Num); // find primes from o to First_Num
   vector<stl> s2 = number(Last_Num); // find primes from o to Last_Num
   vector<stl> result(Last_Num-First_Num);
   set_difference(s2.begin(), s2.end(), s1.begin(), s2.end(), result.begin()); // find set //difference of two vectors
   vector<stl>::iterator itr = remove_if(result.begin(),result.end(),remove_zero); //remove extra zeros.
   result.resize(itr-result.begin());
   return result;
}
int main(void) {
   stl First_Num = 20, Last_Num = 50;
   vector<stl> result = Number_Range(First_Num,Last_Num);
   cout<<"The Prime Numbers from "<<First_Num<<" to "<<Last_Num<< " are: ";
   for (auto i:result)
      cout<<i<<' ';
   return 0;
}

आउटपुट

The Prime Numbers from 20 to 50 are: 23 29 31 37 41 43 47

  1. C++ का प्रयोग करते हुए दी गई रेंज क्वेरी में उपसर्ग सम प्राइम की संख्या ज्ञात करें

    इस लेख में, हमें कई उपसर्ग योग खोजने की जरूरत है जो सकारात्मक पूर्णांक और श्रेणी क्वेरी L के दिए गए सरणी arr[ ] में अभाज्य संख्याएं हैं। , आर , जहां एल प्रारंभिक अनुक्रमणिका मान arr[ L ] उपसर्ग के लिए है[ ] सरणी और R उपसर्ग योग की संख्या है जिसे हमें खोजने की आवश्यकता है। उपसर्ग योग सरणी को भरने के

  1. C++ में दी गई श्रेणी में K विषम भाजक वाली संख्याएँ ज्ञात कीजिए

    इस समस्या में, हमें तीन पूर्णांक मान, L, R, और k दिए गए हैं। हमारा कार्य किसी दी गई श्रेणी में K विषम भाजक वाली संख्याएँ ज्ञात करना है। हम श्रेणी [एल, आर] में संख्याओं की संख्या का पता लगा रहे हैं जिनमें बिल्कुल k भाजक हैं। हम 1 और संख्या को ही भाजक के रूप में गिनेंगे। समस्या को समझने के लिए एक उद