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

सभी प्रमुख कारकों और उनकी शक्तियों को C++ में प्रिंट करें

इस समस्या में, हमें एक संख्या N दी गई है, और हमें सभी अद्वितीय अभाज्य गुणनखंडों और उनकी शक्तियों को खोजना है जो संख्या को विभाजित करते हैं।

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

Input: 55
Output:
5 power 1
11 power 1

स्पष्टीकरण -

55, 5 और 11 से विभाज्य है।

इस समस्या को हल करने के लिए, समस्या को हल करने का एक आसान तरीका यह है कि N के अभाज्य गुणनखंड ज्ञात करें। और फिर उस अभाज्य संख्या की घात ज्ञात करें जो संख्या N को विभाजित करती है और इसे प्रिंट करती है।

एल्गोरिदम

कुशल दृष्टिकोण

Step 1: Find an array s[N+1].
s[i] = prime factor of i dividing N.
Step 2: Find all powers of i. prime = s[N] and pow = 1.
Step 3: While (N > 1) :
   Step 3.1: N /= s[N];
   Step 3.2: if(prime = s[N]) : pow++
Step 4: print prime and pow.

उदाहरण

#include<bits/stdc++.h>
using namespace std;
void primes(int N, int s[]){
   vector <bool> prime(N+1, false);
   for (int i=2; i<=N; i+=2)
      s[i] = 2;
   for (int i=3; i<=N; i+=2){
      if (prime[i] == false){
         s[i] = i;
         for (int j=i; j*i<=N; j+=2){
            if (prime[i*j] == false){
               prime[i*j] = true;
               s[i*j] = i;
            }
         }
      }
   }
}
void generatePrimeFactors(int N) {
   int s[N+1];
   primes(N, s);
   cout<<"Factor\tPower"<<endl;
   int prime = s[N];
   int power = 1;
   while (N > 1){
      N /= s[N];
      if (prime == s[N]){
         power++;
         continue;
      }
      cout<<prime<<"\t"<<power<<endl;
      prime = s[N];
      power = 1;
   }
}
int main() {
   int N = 55;
   cout<<"The prime factors are and their powers are :\n";
   generatePrimeFactors(N);
   return 0;
}

आउटपुट

प्रमुख कारक हैं और उनकी शक्तियां हैं -

Factor Power
5 1
11 1

  1. C++ में होने के क्रम में वर्ण और उनकी आवृत्तियों को प्रिंट करें

    यह समस्या, हमें लोअरकेस वर्णों की एक स्ट्रिंग दी गई है। और हमें स्ट्रिंग में आने वाले प्रत्येक वर्ण की आवृत्तियों को खोजना होगा। समस्या के बारे में अधिक बताते समय नीचे दिया गया उदाहरण। Input : “jskdk” Output : j 1 s 1 k 2 d 1 स्पष्टीकरण - स्ट्रिंग में, वर्ण j, s, d एक बार और k दो बार आत

  1. C++ में 3 और 5 से विभाज्य सभी संख्याओं को प्रिंट करने का कार्यक्रम

    इस ट्यूटोरियल में, हम दी गई संख्या से 3 और 5 कम से विभाज्य सभी संख्याओं को प्रिंट करने के कार्यक्रम पर चर्चा करेंगे। इसके लिए हमें एक नंबर दिया जाएगा जैसे N। हमारा काम N से कम सभी नंबरों को प्रिंट करना है जो 3 और 5 दोनों से विभाज्य हैं। उदाहरण #include <iostream> using namespace std; //printi

  1. C++ में फ्लिप-फ्लॉप प्रकार और उनका रूपांतरण

    फ्लिप-फ्लॉप अनुक्रमिक डिजिटल सर्किट हैं। फ्लिप-फ्लॉप के कुछ अलग प्रकार हैं। यहां हम फ्लिप-फ्लॉप के प्रकार और एक फ्लिप-फ्लॉप से ​​दूसरे में रूपांतरण नियम देखेंगे। फ्लिप-फ्लॉप मूल रूप से चार प्रकार के होते हैं - एसआर फ्लिप-फ्लॉप डी फ्लिप-फ्लॉप जेके फ्लिप-फ्लॉप टी फ्लिप-फ्लॉप एसआर फ्लिप-फ्लॉप SR फ्