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

C++ में किसी संख्या के ठीक चार अलग-अलग गुणनखंड हैं या नहीं, यह जानने के लिए प्रश्न

इस समस्या में, हमें प्रश्नों की एक क्यू संख्या दी जाती है, जिनमें से प्रत्येक की संख्या N होती है। हमारा कार्य प्रश्नों को हल करने के लिए एक प्रोग्राम बनाना है ताकि यह पता लगाया जा सके कि किसी संख्या के C++ में ठीक चार अलग-अलग कारक हैं या नहीं।

समस्या का विवरण

प्रत्येक प्रश्न को हल करने के लिए, हमें यह पता लगाना होगा कि क्या संख्या N के चार अलग-अलग कारक हैं। यदि इसमें हाँ प्रिंट है, अन्यथा नहीं।

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

इनपुट :क्यू =3, 4, 6, 15

आउटपुट :हाँ हाँ

स्पष्टीकरण

प्रश्न 1 के लिए:4 के गुणनखंड 1, 2, 4 हैं

प्रश्न 2 के लिए:6 के गुणनखंड 1, 2, 3, 6 हैं

प्रश्न 3 के लिए:15 के गुणनखंड 1, 3, 5, 15 हैं

समाधान दृष्टिकोण

संख्या के सभी गुणनखंड ज्ञात करके समस्या का सरल समाधान है। यह सभी संख्याओं को एक से N तक ज्ञात करके और काउंटर को 2 से बढ़ाकर किया जाता है। फिर जांचें कि क्या काउंटर 4 के बराबर है और इसकी समानता के आधार पर हाँ या नहीं प्रिंट करें।

उदाहरण

#include <iostream>
#include <math.h>
using namespace std;
   int solveQuery(int N){
   int factors = 0;
   for(int i = 1; i < sqrt(N); i++){
      if(N % i == 0){
         factors += 2;
      }
   }
   if(factors == 4){
      return 1;
   }
   return 0;
}
int main() {
   int Q = 3;
   int query[3] = {4, 6, 15};
   for(int i = 0; i < Q; i++){
      if(solveQuery(query[i]))
         cout<<"The number "<<query[i]<<" has exactly four distinct factors\n";
      else
         cout<<"The number "<<query[i]<<" does not have exactly four
      distinct factors\n";
   }
}

आउटपुट

The number 4 does not have exactly four distinct factors
The number 6 has exactly four distinct factors
The number 15 has exactly four distinct factors

चार-कारक संख्याओं के लिए संख्या सिद्धांत की अवधारणाओं का उपयोग करने के लिए एक कुशल दृष्टिकोण है। इसलिए, यदि किसी संख्या के चार गुणनखंड हैं, तो,

  • यदि संख्या एक अभाज्य संख्या का घन है। फिर इसके चार अलग-अलग कारक होंगे। उदाहरण, यदि N =(p^3), तो गुणनखंड 1, p, (p^2), N होंगे।

  • यदि संख्या दो भिन्न अभाज्य संख्याओं का गुणनफल है। तब भी इसके चार अलग-अलग कारक होंगे। उदाहरण के लिए, यदि N =p1*p2, तो गुणनखंड 1, p1, p2, N होंगे।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int N = 1000;
   bool hasFourFactors[1000];
   void fourDistinctFactors() {
      bool primeNo[N + 1];
      memset(primeNo, true, sizeof(primeNo));
      for (int i = 2; i <= sqrt(N); i++) {
         if (primeNo[i] == true) {
            for (int j = i * 2; j <= N; j += i)
               primeNo[j] = false;
         }
      }
      vector<int> primes;
      for (int i = 2; i <= N; i++)
         if (primeNo[i])
            primes.push_back(i);
            memset(hasFourFactors, false, sizeof(hasFourFactors));
   for (int i = 0; i < primes.size(); ++i) {
      int p1 = primes[i];
      if (1 *(pow(p1, 3)) <= N)
         hasFourFactors[p1*p1*p1] = true;
      for (int j = i + 1; j < primes.size(); ++j) {
         int p2 = primes[j];
         if (1 * p1*p2 > N)
            break;
         hasFourFactors[p1*p2] = true;
      }
   }
}
int main() {
   int Q = 3;
   int query[] = {3, 6, 15};
   fourDistinctFactors();
   for(int i = 0; i < Q; i++){
      if(hasFourFactors[query[i]])
         cout<<"The number "<<query[i]<<" has exactly four distinct
         factors\n";
      else
         cout<<"The number "<<query[i]<<" does not have exactly four distinct factors\n";
   }
   return 0;
}

आउटपुट

The number 3 does not have exactly four distinct factors
The number 6 has exactly four distinct factors
The number 15 has exactly four distinct factors

  1. C++ में परिमेय संख्या का LCM ज्ञात कीजिए

    यहां हम देखेंगे कि परिमेय संख्याओं का एलसीएम कैसे ज्ञात करें। हमारे पास परिमेय संख्याओं की एक सूची है। मान लीजिए सूची {2/7, 3/14, 5/3} जैसी है, तो एलसीएम 30/1 होगा। इस समस्या को हल करने के लिए, हमें सभी अंशों के एलसीएम की गणना करनी होगी, फिर सभी हरों की जीसीडी, फिर परिमेय संख्याओं का एलसीएम, जैसा ह

  1. C++ प्रोग्राम में किसी संख्या के सम गुणनखंडों का योग ज्ञात करना?

    इस प्रोग्राम का उपयोग सभी सम कारकों को खोजने और इन सम कारकों के योग की गणना करने और इसे आउटपुट के रूप में प्रदर्शित करने के लिए किया जाता है। उदाहरण - Input : 30 Even dividers : 2+6+10+30 = 48 Output : 48 इसके लिए हम सभी कारकों का पता लगाएंगे। उनमें से सम ज्ञात कीजिए और योग ज्ञात कीजिए, अन्यथा, ह

  1. C++ प्रोग्राम किसी संख्या के सम गुणनखंडों का योग ज्ञात करने के लिए?

    इस भाग में हम देखेंगे कि कैसे हम किसी संख्या के सभी सम अभाज्य गुणनखंडों का योग कुशल तरीके से प्राप्त कर सकते हैं। एक संख्या है मान लीजिए n =480, हमें इसका पूरा गुणनखंड प्राप्त करना है। 480 के अभाज्य गुणनखंड 2, 2, 2, 2, 2, 3, 5 हैं। सभी सम गुणनखंडों का योग 2+2+2+2+2 =10 है। इस समस्या को हल करने के लि