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

ज्ञात कीजिए कि क्या n को C++ में k संख्याओं के गुणनफल के रूप में लिखा जा सकता है

मान लीजिए हमारे पास एक संख्या N है। हमारे पास एक और संख्या k है। हमें यह जांचना है कि k संख्याओं का उपयोग करके संख्या का प्रतिनिधित्व किया जा सकता है या नहीं। मान लीजिए एक संख्या 54, और k =3, तो यह [2, 3, 9] जैसी संख्याओं को प्रिंट करेगा, यदि इसे प्रदर्शित नहीं किया जा सकता है, तो इसे प्रिंट करें।

इसे हल करने के लिए, हम N के सभी अभाज्य गुणनखंडों को खोजेंगे, और उन्हें एक सदिश में संग्रहित करेंगे, फिर 1 से बड़ी k संख्याएँ ज्ञात करने के लिए, हम जाँचते हैं कि सदिश का आकार k से बड़ा है या नहीं। यदि आकार k से कम है, तो -1 लौटाएं, अन्यथा पहले k-1 फ़ैक्टर प्रिंट करें और अंतिम फ़ैक्टर शेष सभी संख्याओं का गुणनफल होगा।

उदाहरण

#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
   int getKFactors(int n, int k){
   int i;
   vector<int> vec;
   while(n % 2 == 0){
      vec.push_back(2);
      n = n/2; //reduce n by dividing this by 2
   }
   for(i = 3; i <= sqrt(n); i=i+2){ //i will increase by 2, to get only odd numbers
      while(n % i == 0){
         n = n/i;
         vec.push_back(i);
      }
   }
   if(n > 2){
      vec.push_back(n);
   }
   if(vec.size() < k){
      cout << "Cannot be represented";
         return -1;
   }
   for (int i=0; i<k-1; i++)
   cout << vec[i] << ", ";
   int prod = 1;
   for (int i=k-1; i<vec.size(); i++)
   prod = prod*vec[i];
   cout << prod << endl;
}
int main() {
   int n = 54, k = 3;
   getKFactors(n, k);
}

आउटपुट

2, 3, 9

  1. C++ में किसी सरणी में सभी अभाज्य संख्याओं का गुणनफल

    कुछ तत्वों के साथ एक पूर्णांक सरणी arr[] को देखते हुए, कार्य उस संख्याओं की सभी अभाज्य संख्याओं का गुणनफल खोजना है। अभाज्य संख्याएँ वे संख्याएँ होती हैं जिन्हें या तो 1 से या स्वयं संख्या से विभाजित किया जाता है, या एक अभाज्य संख्या एक ऐसी संख्या होती है जो 1 और स्वयं संख्या को छोड़कर किसी अन्य संख

  1. सी ++ प्रोग्राम दो संख्याओं को योग और उत्पाद दोनों के साथ खोजने के लिए एन के समान है

    इस ट्यूटोरियल में, हम दो संख्याओं (जैसे ए और बी) को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे, जैसे कि दोनों a+b = N and a*b = N are satisfied. दोनों समीकरणों में से a को हटाने पर हमें b और N में द्विघात समीकरण मिलता है, यानी b2 - bN + N = 0 इस समीकरण के दो मूल होंगे जो हमें a और b दोनों का मान दे

  1. C++ प्रोग्राम दो संख्याओं को गुणा करने के लिए

    दो संख्याओं a और b के गुणन से उनका गुणनफल प्राप्त होता है। a का मान a और b का गुणनफल प्राप्त करने के लिए b के मान के रूप में कई बार जोड़ा जाता है। उदाहरण के लिए। 5 * 4 = 20 7 * 8 = 56 9 * 9 = 81 ऑपरेटर का उपयोग करके दो संख्याओं को गुणा करने का कार्यक्रम * ऑपरेटर का उपयोग करके दो संख्याओं को गुणा क