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

दिए गए GCD वाले प्राकृतिक संख्या जोड़ों की गणना (रेंज में) - C++

समस्या विवरण

हमें तीन इनपुट start, end, number दिए गए हैं। लक्ष्य [start, end] रेंज में उन जोड़ों (A,B) की गणना करना है जिनका GCD number के बराबर हो।

उदाहरण

इनपुट: start=5, end=20, number=8

आउटपुट: 3

व्याख्या: (8,8), (8,16), (16,8)

इनपुट: start=5, end=20, number=7

आउटपुट: 2

व्याख्या: (21,28), (28,21) — लेकिन 21,28 रेंज में नहीं हैं। सही: (7,7), (7,14), (14,7) — रेंज 5-20 में।

दृष्टिकोण

साधारण: रेंज में सभी जोड़ों की जाँच करें। O(n²)।

कुशल: GCD number होने के लिए दोनों संख्याएँ number से विभाज्य होनी चाहिए। रेंज को अपडेट करें: start = ceil(start/number), end = floor(end/number)। फिर GCD=1 वाले जोड़े गिनें।

एल्गोरिदम (कुशल)

  1. start = (start + number - 1) / number
  2. end = end / number
  3. नई रेंज [start, end] में GCD(i,j)==1 वाले जोड़े गिनें

C++ कार्यान्वयन

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

int GCD(int a, int b) {
    return b ? GCD(b, a % b) : a;
}

int GCD_pairs(int start, int end, int number) {
    int count = 0;
    for (int i = start; i <= end; i++) {
        for (int j = start; j <= end; j++) {
            if (GCD(i, j) == 1) count++;
        }
    }
    return count;
}

int main() {
    int start = 10, end = 30, number = 10;
    start = (start + number - 1) / number;
    end = end / number;
    cout << "Count: " << GCD_pairs(start, end, number) << endl;
    return 0;
}

आउटपुट

Count: 7
  1. - C++ में दिए गए XOR वाले सभी जोड़ों की गणना करें

    इस ट्यूटोरियल में, हम दिए गए XOR वाले जोड़ों की संख्या खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।इसके लिए हमें एक सरणी और एक मान प्रदान किया जाएगा। हमारा कार्य उन जोड़ों की संख्या ढूंढना है जिनका XOR दिए गए मान के बराबर है।उदाहरण#include<bits/stdc++.h> using namespace std; //returning the numb

  1. - C++ में अंतर K के बराबर वाले सभी विशिष्ट जोड़े गिनें

    इस ट्यूटोरियल में, हम अंतर K के बराबर वाले विशिष्ट जोड़े खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।इसके लिए हमें एक इंटीजर ऐरे और मान k प्रदान किया जाएगा। हमारा कार्य उन सभी विशिष्ट जोड़ों को गिनना है जिनका अंतर k है।उदाहरण#include<iostream> using namespace std; int count_diffK(int arr[], int

  1. - C++ में दिए गए सूचकांकों के साथ N फाइबोनैचि संख्याओं का GCD ढूंढना

    यहां हमें दिए गए सूचकांकों के साथ n फाइबोनैचि पदों का GCD ढूंढना है। तो सबसे पहले हमें अधिकतम सूचकांक प्राप्त करना होगा, और फाइबोनैचि पद उत्पन्न करने होंगे। कुछ फाइबोनैचि पद ऐसे हैं: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... सूचकांक 0 से शुरू होता है। तो 0वें सूचकांक पर तत्व 0 है। यदि हमें सूचकांकों {2,