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

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

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

हम P के सभी अभाज्य गुणनखंडों को खोजेंगे, और उन्हें हैशमैप में संग्रहित करेंगे। N पूर्णांकों में अधिकतम GCD होगा जब सभी पूर्णांकों में अभाज्य गुणनखंड उभयनिष्ठ होगा। तो अगर पी =पी<उप>1 k1 * पी<उप>2 k2 * ... * पी<उप>एन kn . यहां पाई प्रमुख कारक है। तब अधिकतम GCD होगा res =p1 k1/N * पी<उप>2 k2/N * ... * पी<उप>एन kn/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 ज्ञात करना है। मान लीजिए एन =3, और पी =24, तो अलग-अलग समूह होंगे जैसे {1, 1, 24}, {1, 2, 12}, {1, 3, 8}, {1, 4, 6}, {2 , 2, 6}, {2, 3, 4}। जीसीडी हैं:1, 1, 1, 1, 2, 1. तो उत्तर यहां 2 ह

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

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

  1. C++ में दिए गए GCD और LCM के साथ कोई भी युग्म ज्ञात कीजिए

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