इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो N से कम या बराबर तत्वों वाले संख्याओं के अद्वितीय जोड़े ढूंढता है और कुछ शर्तों का पालन करता है -
दो संख्याओं के बीच अंतर का वर्ग उन दो संख्याओं के LCM के बराबर होना चाहिए।
उन दो संख्याओं का HCF किन्हीं दो क्रमागत संख्याओं के गुणनफल के रूप में दर्शाया जा सकता है।
इस समस्या को हल करने का सबसे अच्छा दृष्टिकोण दो क्रमागत संख्याओं (1 से शुरू करके) को लेना और उन संख्याओं के गुणनफल के गुणज ढूंढना होगा। फिर गुणजों में से, एक जोड़ी निर्दिष्ट करने के लिए हमें जांचना होगा कि क्या जोड़ी में संख्याएं पहली दी गई शर्त को पूरा करती हैं।
उदाहरण के लिए, 2 और 3 का मामला लें। उनका गुणनफल 6 होगा। अब यदि हम 6 के गुणजों के साथ आगे बढ़ते हैं, तो हमें 6, 12, 18, 24 ... मिलेंगे। एक समय में दो संख्याएं लेते हुए, हम जांचते हैं कि क्या दो क्रमागत संख्याओं (इस मामले में 36) के बीच अंतर का वर्ग उन संख्याओं के LCM के बराबर है। हम अंततः इस मामले में जोड़ी 12 और 18 प्राप्त करते हैं।
समीकरण को सामान्य बनाते हुए, हमें दो संख्याएं Z * (Z*(Z+1)) और (Z+1) * (Z*(Z+1)) मिलती हैं जहां Z HCF (क्रमागत जोड़ी गुणनफल) में पहली संख्या है।
अंत में इस शर्त का उपयोग करके कि मान N से कम होने चाहिए, हमें मिलता है
(Z+1) * (Z*(Z+1)) <= N या Z³ + (2*Z²) + Z <= N।
उदाहरण
#include <iostream>
using namespace std;
int main() {
int N = 489, pairs, i = 1;
// N से कम तत्वों वाली जोड़ों की संख्या गिनना
while((i*i*i) + (2*i*i) + i <= N) {
i++;
}
pairs = i;
cout << "Pairs :" << endl;
// जोड़ी के दो तत्व प्रिंट करना
for(int j = 1; j < pairs; j++) {
cout << j*(j*(j+1)) << " " << (j+1)*(j*(j+1)) << endl;
}
return 0;
}
आउटपुट
Pairs : 2 4 12 18 36 48 80 100 150 180 252 294 392 448