इस समस्या में, हम एक संख्या N हैं। हमारा कार्य अलग-अलग संख्याओं का अधिकतम योग ज्ञात करने के लिए एक प्रोग्राम बनाना है, ताकि इन संख्याओं का LCM C++ में N हो।
समस्या का विवरण
हमें संख्या N के सभी गुणनखंडों का योग ज्ञात करना होगा और अधिकतम योग ज्ञात करने के लिए सभी भिन्न को जोड़ना होगा।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
N = 12
आउटपुट
28
स्पष्टीकरण
All distinct factors of N are 1, 2, 3, 4, 6, 12. Sum = 1 + 2 + 3 + 4 + 6 + 12 = 28
समाधान दृष्टिकोण
एक सरल समाधान यह होगा कि संख्या के सभी गुणनखंडों को खोजा जाए और फिर परिणाम प्राप्त करने के लिए सभी भिन्न कारकों को जोड़ा जाए।
इसके लिए, हम N के वर्गमूल तक पुनरावृति करेंगे। और जाँच करें कि क्या संख्या N को विभाजित करती है। यदि हाँ, तो जाँच करें कि क्या यह अलग है, यदि हाँ, तो संख्या और भाग भागफल जोड़ें अन्यथा संख्या जोड़ें। अंतिम अधिकतम राशि लौटाएं।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,
#include <iostream> using namespace std; int calcMaxSumForLCM(int N){ int maxSum = 0; for (int i = 1; i*i <= N; i++){ if (N%i == 0){ if (i == (N/i)) maxSum = maxSum + i; else maxSum = maxSum + i + (N/i); } } return maxSum; } int main(){ int N = 17; cout<<"The sum of distinct numbers such that LCM if these numbers is "<<N<<" is "<<calcMaxSumForLCM(N); return 0; }
आउटपुट
The sum of distinct numbers such that LCM if these numbers is 17 is 18