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

C++ में N को बार-बार भाजक से विभाजित करने के बाद अधिकतम योग (Maximum sum after repeatedly dividing N by a divisor)


इस समस्या में, हमें एक पूर्णांक N दिया गया है। हमारा कार्य एक प्रोग्राम बनाना है जो C++ में N को बार-बार भाजक (divisor) से विभाजित करने के बाद अधिकतम योग ढूंढे।

प्रोग्राम विवरण - हम संख्या N को रिकर्सिवली तब तक विभाजित करेंगे जब तक यह एक न हो जाए और फिर सभी भाजकों का योग करेंगे और सभी भाजकों का अधिकतम ढूंढेंगे।

आइए एक उदाहरण से समझते हैं:

इनपुट - N = 12

आउटपुट - 22

व्याख्या - आइए संख्या को रिकर्सिवली विभाजित करें और योग ढूंढें।

विभाजन 1: 12/2 = 6
विभाजन 2: 6/2 = 3
विभाजन 3: 3/3 = 1
योग = 12+6+3+1 = 22

इस समस्या को हल करने के लिए, हम N को N के सबसे छोटे भाजक से विभाजित करके व्यक्तिगत मानों को अधिकतम बनाकर अधिकतम योग ढूंढेंगे।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

int smallestDivisor(int n){
    int mx = sqrt(n);
    for (int i = 2; i <= mx; i++)
        if (n % i == 0)
            return i;
    return n;
}

int calculateMaxSum(int n) {
    long long maxSum = n;
    while (n > 1) {
        int divisor = smallestDivisor(n);
        n /= divisor;
        maxSum += n;
    }
    return maxSum;
}

int main(){
    int N = 12;
    cout << "संख्या " << N << " को बार-बार भाजक से विभाजित करने के बाद अधिकतम योग है " << calculateMaxSum(N);
    return 0;
}

आउटपुट

संख्या 12 को बार-बार भाजक से विभाजित करने के बाद अधिकतम योग है 22
  1. C++ में बाइनरी ट्री में अधिकतम स्पाइरल सम C++ में बाइनरी ट्री में अधिकतम स्पाइरल सम

    इस समस्या में, हमें एक बाइनरी ट्री दिया गया है। हमारा कार्य एक प्रोग्राम बनाना है जो C++ में बाइनरी ट्री में अधिकतम स्पाइरल सम ढूंढेगा।बाइनरी ट्री का स्पाइरल सम  बाइनरी ट्री के स्पाइरल ट्रैवर्सल में मिलने वाले नोड्स का योग है।ट्री के स्पाइरल ट्रैवर्सल में, नोड्स को रूट से लीफ नोड तक ट्रैवर्स कि

  1. - C++ में त्रिभुज में अधिकतम पथ योग

    इस समस्या में, हमें संख्याएँ त्रिभुज के रूप में दी गई हैं। हमारा कार्य एक प्रोग्राम बनाना है जो त्रिभुज में अधिकतम पथ योग ढूंढेगा। तत्वों को पहली पंक्ति से 1 तत्व के साथ व्यवस्थित किया जाता है और फिर अगली पंक्तियों में तत्वों की बढ़ती संख्या के साथ जब तक nवीं पंक्ति में तत्व नहीं होते। इसलिए, प्रोग

  1. - C++ में ऐरे में अधिकतम संतुलन योग

    समस्या कथन एक ऐरे arr[] दिया गया है। इंडेक्स i के लिए arr[] में अधिकतम प्रीफिक्स योग का मान ढूंढें जो सफिक्स योग भी हो। उदाहरण यदि इनपुट ऐरे है - Arr[] = {1, 2, 3, 5, 3, 2, 1} तो आउटपुट 11 है - प्रीफिक्स योग = arr[0..3] = 1 + 2 + 3 + 5 = 11 और सफिक्स योग = arr[3..6] = 5 + 3 + 2 + 1 = 11 एल्गोरिदम