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

C++ प्रोग्राम: अद्वितीय जोड़े ढूंढें जहां प्रत्येक तत्व N से कम या बराबर हो


इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो 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

  1. - C++ प्रोग्राम: 'k' खोजें जैसे कि प्रत्येक एरे तत्व के साथ इसका मॉड्यूलस समान हो

    इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो एक पूर्णांक k खोजता है, जैसे कि दिए गए एरे के प्रत्येक तत्व के साथ इसका मॉड्यूलस समान हो। उदाहरण के लिए, मान लीजिए हमें एक एरे दिया गया है, arr = {12, 22, 32} तो हमारे पास आउटपुट मान k = 1, 2, 5, 10 होगा। y)। तब हमारे पास (y + अंतर) % k = y % k होगा।

  1. - C++ प्रोग्राम: शब्द को पैलिंड्रोम पार्टीशन्स में विभाजित करने के तरीकों की संख्या खोजें

    यहां हम एक C++ प्रोग्राम पर चर्चा करेंगे जो एक शब्द को इस तरह पार्टीशन करने के तरीकों की संख्या खोजता है कि प्रत्येक शब्द एक पैलिंड्रोम हो। एल्गोरिदम Begin शब्द को इनपुट के रूप में लें। function partitionadd(vector

  1. - C++ प्रोग्राम: दो संख्याओं को स्वैप करें

    परिचयदो संख्याओं को स्वैप करने का प्रोग्राम बनाने के दो तरीके हैं। एक में टेम्प वेरिएबल का उपयोग शामिल है और दूसरा तरीका तीसरे वेरिएबल का उपयोग नहीं करता है। इन्हें विस्तार से समझाया गया है - टेम्प वेरिएबल का उपयोग करके दो संख्याओं को स्वैप करेंउदाहरण#include <iostream> using namespace std; i