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

C++ में दिए गए उत्पाद के साथ N पूर्णांकों का अधिकतम GCD


मान लीजिए हमारे पास दो पूर्णांक N और P हैं। P, N अज्ञात पूर्णांकों का उत्पाद है। हमें उन पूर्णांकों के अधिकतम संभव GCD को ढूंढना है। मान लीजिए N = 3, और P = 24, तो अलग-अलग समूह होंगे जैसे {1, 1, 24}, {1, 2, 12}, {1, 3, 8}, {1, 4, 6}, {2, 2, 6}, {2, 3, 4}। GCD हैं: 1, 1, 1, 1, 2, 1। तो उत्तर यहां 2 है।

हम P के सभी अभाज्य गुणनखंड ढूंढेंगे, और उन्हें हैशमैप में स्टोर करेंगे। N पूर्णांकों का अधिकतम GCD तब होगा जब अभाज्य गुणनखंड सभी पूर्णांकों में सामान्य होगा। इसलिए यदि P = p1k1 * p2k2 * … * pnkn। यहां pi अभाज्य गुणनखंड है। तो अधिकतम GCD होगा res = p1k1/N * p2k2/N * … * pnkn/N।

उदाहरण

#include <iostream> #include <cmath> #include <unordered_map> using namespace std; long getMaxGCD(long N, long p) {    int gcd = 1;    unordered_map<int, int> prime_factors;    for (int i = 2; i * i <= p; i++) {       while (p % i == 0) {          prime_factors[i]++;          p /= i;       }    }    if (p != 1)       prime_factors[p]++;    for (auto v : prime_factors)       gcd = gcd * pow(v.first, v.second / N);    return gcd; } int main() {    long n = 3;    long p = 24;    cout << "MAX GCD: " << getMaxGCD(n, p); }

आउटपुट

MAX GCD: 2

  1. - C++ में दिए गए उत्पाद के साथ N पूर्णांकों का अधिकतम GCD

    मान लीजिए हमारे पास दो पूर्णांक N और P हैं। P, N अज्ञात पूर्णांकों का उत्पाद है। हमें उन पूर्णांकों के अधिकतम संभव GCD को ढूंढना है। मान लीजिए N = 3, और P = 24, तो अलग-अलग समूह होंगे जैसे {1, 1, 24}, {1, 2, 12}, {1, 3, 8}, {1, 4, 6}, {2, 2, 6}, {2, 3, 4}। GCD हैं: 1, 1, 1, 1, 2, 1। तो उत्तर यहां 2 ह

  1. - C++ में अज्ञात संख्याओं के दिए गए उत्पाद से अधिकतम GCD

    मान लीजिए हमारे पास दो पूर्णांक N और P हैं। P, N अज्ञात पूर्णांकों का उत्पाद है। हमें उन पूर्णांकों का GCD ढूंढना है। ऐसे पूर्णांकों के अलग-अलग समूह संभव हैं जो समान परिणाम देंगे। यहां हम सभी संभावित समूहों में से अधिकतम GCD उत्पन्न करेंगे। मान लीजिए N = 3, और P = 24, तो अलग-अलग समूह होंगे जैसे {1,

  1. - C++ में दिए गए GCD और LCM के साथ कोई भी पेयर खोजें

    इस सेक्शन में हम देखेंगे कि दिए गए GCD और LCM मानों का उपयोग करके नंबर पेयर्स की संख्या कैसे प्राप्त करें। मान लीजिए GCD और LCM मान 2 और 12 हैं। अब नंबरों के संभावित पेयर्स हैं (2, 12), (4, 6), (6, 4) और (12, 2)। इसलिए हमारा प्रोग्राम पेयर्स की संख्या ढूंढेगा। वह 4 है।आइए एल्गोरिदम देखें कि इस समस्य