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

अधिकतम उत्पाद के साथ एन के चार कारक खोजें और सी ++ में एन के बराबर योग करें

मान लीजिए कि हमारे पास एक पूर्णांक N है। कार्य N के सभी कारकों को खोजना और N के चार कारकों के उत्पाद को प्रदर्शित करना है, जैसे कि -

  • उनके चार कारकों का योग N के बराबर है

  • चार कारकों का गुणनफल अधिकतम है

मान लीजिए कि संख्या 24 है, तो गुणनफल 1296 है। जैसा कि हम जानते हैं कि सभी गुणनखंड 1, 2, 3, 4, 6, 8, 12, 24 हैं। हमें गुणनखंडों को 6 चार बार चुनना होगा। तो 6 + 6 + 6 + 6 =24. यहाँ गुणनफल अधिकतम है।

इसे हल करने के लिए, हमें 1 से N तक के सभी गुणनखंडों को खोजना होगा, फिर हमें इन शर्तों की जाँच करनी होगी

  • यदि N अभाज्य है, तो उत्तर गलत होगा

  • यदि दिया गया n 4 से विभाज्य है, तो उत्तर x^4 होगा। जहाँ x एक भागफल है जब n 4 से विभाज्य है।

  • यदि उत्तर खोजना संभव है, तो उत्तर में तीसरा अंतिम कारक दो बार शामिल होना चाहिए। फिर अन्य दो कारकों के लिए नेस्टेड लूप चलाएँ।

उदाहरण

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool isPrime(int n) {
   if (n <= 1)
      return false;
   if (n <= 3)
      return true;
   if (n % 2 == 0 || n % 3 == 0)
      return false;
   for (int i = 5; i * i <= n; i = i + 6)
      if (n % i == 0 || n % (i + 2) == 0)
   return false;
   return true;
}
void get_factors(int N, vector<int> fact_vectors[]) {
   for (int i = 2; i < N; i++) {
      for (int j = 1; j * j <= i; j++) {
         if (i % j == 0) {
            if (i / j == j)
            fact_vectors[i].push_back(j);
            else {
               fact_vectors[i].push_back(j);
               fact_vectors[i].push_back(i / j);
            }
         }
      }
      sort(fact_vectors[i].begin(), fact_vectors[i].end());
   }
}
int getProduct(int n) {
   vector<int> v[n + 100];
   get_factors(n + 100, v);
   if (n % 4 == 0) {
      int x = n / 4;
      x *= x;
      return x * x;
   } else {
      if (isPrime[n])
      return -1;
      else {
         int ans = -1;
            if (v[n].size() > 2) {
               int fac = v[n][v[n].size() - 3];
               for (int i = v[n].size() - 1; i >= 0; i--) {
                  for (int j = v[n].size() - 1; j >= 0; j--) {
                     if ((fac * 2) + (v[n][j] + v[n][i]) == n)
                     ans = max(ans, fac * fac * v[n][j] * v[n][i]);
                  }
               }
            return ans;
         }
      }
   }
}
int main() {
   int n = 24;
   cout << "The product is: " << getProduct(n);
}

आउटपुट

The product is: 1296

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

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

  1. पायथन प्रोग्राम में अधिकतम उत्पाद और एन के बराबर योग के साथ एन के चार कारक खोजें

    मान लीजिए हमारे पास एक संख्या N है, हमें N के सभी गुणनखंड ज्ञात करने हैं और N के चार गुणनखंडों का गुणनफल इस प्रकार लौटाना है कि:चार गुणनखंडों का योग N के समान हो। चार गुणनखंडों का गुणनफल अधिकतम होता है। उत्पाद को अधिकतम करने के लिए सभी चार कारक एक दूसरे के बराबर हो सकते हैं। 1 2 3 4 5 6 10 12 15 20

  1. अधिकतम उत्पाद और एन के बराबर योग के साथ एन के चार कारक खोजें - पायथन में सेट -2

    मान लीजिए कि हमारे पास एक संख्या N है; हमें N के गुणनखंड ज्ञात करने हैं और N के केवल चार गुणनखंडों का गुणनफल इस प्रकार लौटाना है कि - चार कारकों का योग N के समान है। चार कारकों का गुणनफल अधिकतम होता है। उत्पाद को अधिकतम करने के लिए सभी चार कारक एक दूसरे के बराबर हो सकते हैं। इसलिए, यदि इनप