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

C++ में N के चार गुणनखंड खोजें जिनका अधिकतम गुणनफल हो और योग N के बराबर हो


अवधारणा

एक दिए गए पूर्णांक N के संबंध में, हमारा कार्य N के सभी गुणनखंड निर्धारित करना है और N के चार गुणनखंडों का गुणनफल प्रिंट करना है ताकि −

<उल क्लास="सूची"><ली>चार गुणनखंडों का योग N के बराबर हो।<ली>चार गुणनखंडों का गुणनफल सबसे बड़ा हो।

यह देखा गया है कि यदि ऐसे 4 गुणनखंड ढूंढना असंभव है तो "Not possible" प्रिंट करें।

यह ध्यान दिया जाना चाहिए कि उत्पाद को अधिकतम करने के लिए सभी चार गुणनखंड एक-दूसरे के बराबर हो सकते हैं।

इनपुट

24

आउटपुट

All the factors are -> 1 2 4 5 8 10 16 20 40 80 Product is -> 160000

गुणनखंड 20 को चार बार चुनें,

इसलिए, 20+20+20+20 = 24 और गुणनफल अधिकतम है।

विधि

इस समस्या को हल करने के लिए चरण दर चरण एल्गोरिदम निम्नलिखित है −

<उल क्लास="सूची"><ली>सबसे पहले 1 से 'N' के वर्गमूल तक जाकर संख्या 'N' के गुणनखंड निर्धारित करें और सत्यापित करें कि 'i' और 'n/i' N को विभाजित करते हैं और उन्हें एक वेक्टर में संग्रहीत करें।<ली>अब हम वेक्टर को सॉर्ट करते हैं और हर तत्व प्रिंट करते हैं।<ली>तीन लूप्स लागू करके चौथी संख्या के साथ उत्पाद को अधिकतम करने के लिए तीन संख्याएं निर्धारित करें।<ली>अंत में हम पिछले उत्पाद के साथ अगले अधिकतम उत्पाद को प्रतिस्थापित करते हैं।<ली>जब आपको चार गुणनखंड मिल जाएं तो उत्पाद प्रिंट करें।

उदाहरण

<प्रि क्लास="प्रिटीप्रिंट नोट्रांसलेट">// C++ program to find four factors of N // with maximum product and sum equal to N #include <bits/stdc++.h> using namespace std; // गुणनखंड खोजने और उन चार गुणनखंडों को प्रिंट करने वाला फ़ंक्शन void findfactors2(int n1){    vector<int> vec2;    // अब एक वेक्टर में सभी गुणनखंड डालें    for (int i = 1; i * i <= n1; i++) {       if (n1 % i == 0) {          vec2.push_back(i);          vec2.push_back(n1 / i);       }    }    // वेक्टर को सॉर्ट करने के लिए उपयोग किया जाता है    sort(vec2.begin(), vec2.end());    // सभी गुणनखंड प्रिंट करने के लिए उपयोग किया जाता है    cout << "All the factors are -> ";    for (int i = 0; i < vec2.size(); i++)       cout << vec2[i] << " ";       cout << endl;       // कोई भी तत्व 1 से विभाज्य होता है       int maxProduct2 = 1;       bool flag2 = 1;       // तीन लूप लागू करके हम       // तीन अधिकतम गुणनखंड खोजेंगे       for (int i = 0; i < vec2.size(); i++) {          for (int j = i; j < vec2.size(); j++) {             for (int k = j; k < vec2.size(); k++) {                // अब चौथे गुणनखंड को y में संग्रहीत करें                int y = n1 - vec2[i] - vec2[j] - vec2[k];             // यह देखा गया है कि यदि चौथा गुणनखंड ऋणात्मक हो जाता है           // तो ब्रेक करें             if (y <= 0)                break;             // अब हम पिछले की तुलना में अधिक इष्टतम संख्या             // प्रतिस्थापित करेंगे             if (n1 % y == 0) {                flag2 = 0;                maxProduct2 = max(vec2[i] * vec2[j] * vec2[k] *y,maxProduct2);             }          }       }    }    // यदि संख्याएं मौजूद हैं तो उत्पाद प्रिंट करने के लिए उपयोग किया जाता है    if (flag2 == 0)      cout << "Product is -> " << maxProduct2 << endl;    else       cout << "Not possible" << endl; } // ड्राइवर कोड int main(){    int n1;    n1 = 80;    findfactors2(n1);    return 0; }

आउटपुट

All the factors are -> 1 2 4 5 8 10 16 20 40 80 Product is -> 160000

  1. - C++ प्रोग्राम: दो संख्याएं ढूंढें जिनका योग और गुणनफल दोनों N के समान हों

    इस ट्यूटोरियल में, हम एक प्रोग्राम पर चर्चा करेंगे जो दो संख्याएं (मान लीजिए a और b) ढूंढता है जैसे कि दोनों a + b = N और a * b = N संतुष्ट हों। a को दोनों समीकरणों से हटाने पर, हमें b और N में एक द्विघात समीकरण मिलता है यानी b² - bN + N = 0 इस समीकरण के दो मूल होंगे जो हमें a और b दोनों का मान दें

  1. - Python प्रोग्राम में N के चार गुणनखोजें जिनका अधिकतम गुणनफल और योग N के बराबर हो - सेट-2

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

  1. - Python में N के चार गुणनखोजें जिनका अधिकतम गुणनफल और योग N के बराबर हो - सेट-2

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