कार्य को देखते हुए अधिकतम उत्पाद की गणना करना है जो किसी दिए गए नंबर एन के चार कारकों ए, बी, सी, डी से प्राप्त किया जा सकता है, शर्त को देखते हुए -
चार कारकों का योग संख्या N के बराबर होना चाहिए, यानी N=A+B+C+D.
इनपुट -एन=10
आउटपुट -20
स्पष्टीकरण − 10 के गुणनखंड हैं:1, 2, 5, 10.
अधिकतम उत्पाद 5*2*2*1=20 गुणा करके प्राप्त किया जा सकता है और यह दी गई शर्त को भी पूरा करता है, अर्थात 5+2+2+1=10।
इनपुट -एन=16
आउटपुट − 256
स्पष्टीकरण − 16 के गुणनखंड हैं:1, 2, 4, 8, 16.
अधिकतम उत्पाद 4*4*4*4=256 गुणा करके प्राप्त किया जा सकता है और यह दी गई शर्त को भी पूरा करता है, अर्थात 4+4+4+4=16।
निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है
-
दिए गए नंबर के फ़ैक्टर को स्टोर करने के लिए एक ऐरे फ़ैक्टर [] टाइप करें और एरे के आकार का ट्रैक रखने के लिए एक वैरिएबल K=0 टाइप इंट बनाएं।
-
दी गई संख्याओं के गुणनखंड ज्ञात करने के लिए FindFactors() फ़ंक्शन बनाएँ।
-
i=1 से लूप; मैं*मैं<=एन; मैं++पी>
-
लूप के अंदर अगर (N%i ==0) यह जांचने के लिए सेट करें कि मैं एक कारक हूं या नहीं।
-
यदि i एक गुणनखंड है, तो जाँचें कि क्या (N/I ==i)। यदि हाँ तो i को फ़ैक्टर में डालें [] अन्यथा N/i और i दोनों को फ़ैक्टर में पास करें []।
-
कारकों में से अधिकतम उत्पाद खोजने के लिए फ़ंक्शन उत्पाद () बनाएं।
-
int उत्पाद =0 प्रारंभ करें; और आकार=के+1;
-
चार नए नेस्टेड लूप शुरू करें और उन्हें 'आकार' तक चलाएं।
-
लूप के अंदर, इनिशियलाइज़ करें int sum=Factors[i] + Factors[] + Factors[k] + Factors[l];
-
जांचें कि क्या (योग ==एन) और यदि ऐसा है तो समर्थक =कारक [i] * कारक [जे] * कारक [के] * कारक [एल];
प्रारंभ करें -
फिर जांचें कि क्या (प्रो> उत्पाद), यदि ऐसा है तो उत्पाद =प्रो डालें;
-
उत्पाद लौटाएं
उदाहरण
#include <bits/stdc++.h>
using namespace std;
//Array to store the factors
int Factors[30];
int K=0;
//Function to find out the factors
int FindFactors(int N){
//Looping until i reaches the sqrt(N)
for (int i = 1; i * i <= N; i++){
if (N % i == 0){
/* if both the factors are same then only one will be inserted*/
if ((N / i) == i){
Factors[K]=i;
K++;
}
else{
//Inserting 1st factor in array
Factors[K]=N/i;
K++;
//Inserting 2st factor in array
Factors[K]=i;
K++;
}
}
}
}
// Function to find the maximum product
int Product(int N){
int product = 0;
int size = K+1;
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
for (int k = 0; k < size; k++)
for (int l = 0; l < size; l++){
//Adding each set of factors
int sum = Factors[i] + Factors[j] + Factors[k] + Factors[l];
//Checking if the sum is equal to N
if (sum == N){
//Multiplying the factors
int pro = Factors[i] * Factors[j] * Factors[k] * Factors[l];
//Replacing the value of product if a larger value is found
if(pro > product)
product = pro;
}
}
return product;
}
//Main function
int main(){
int N = 10;
//Calling function to find factors of N
FindFactors(N);
//Calling function to find the maximum product
cout<<Product(N);
return 0;
} आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -
Maximum Profit: 20