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

जीसीडी (ए ^ एन, सी) खोजें जहां ए, एन और सी सी ++ में 1 से 10 ^ 9 तक भिन्न हो सकते हैं


हमें दो संख्याओं की GCD ज्ञात करनी है जिनमें से एक संख्या (109 ^ 109) जितनी बड़ी हो सकती है, जिसे कुछ डेटा प्रकारों जैसे long या किसी अन्य में संग्रहीत नहीं किया जा सकता है। इसलिए यदि संख्याएँ a =10248585, n =1000000, b =12564 हैं, तो GCD(a^n, b) का परिणाम 9 होगा।

चूंकि संख्याएं बहुत लंबी हैं, हम यूक्लिडियन एल्गोरिथम का उपयोग नहीं कर सकते हैं। हमें ओ (लॉग एन) जटिलता के साथ मॉड्यूलर एक्सपोनेंटिएशन का उपयोग करना होगा।

उदाहरण

#include<iostream>
#include<algorithm>
using namespace std;
long long power(long long a, long long n, long long b) {
   long long res = 1;
   a = a % b;
   while (n > 0) {
      if (n & 1)
         res = (res*a) % b;
      n = n>>1;
      a = (a*a) % b;
   }
   return res;
}
long long bigGCD(long long a, long long n, long long b) {
   if (a % b == 0)
      return b;
   long long exp_mod = power(a, n, b);
   return __gcd(exp_mod, b);
}
int main() {
   long long a = 10248585, n = 1000000, b = 12564;
   cout << "GCD value is: " << bigGCD(a, n,b);
}

आउटपुट

GCD value is: 9

  1. सी++ प्रोग्राम एन नंबरों के जीसीडी और एलसीएम को खोजने के लिए

    यह n संख्याओं का GCD और LCM ज्ञात करने का कोड है। GCD या दो या अधिक पूर्णांकों का सबसे बड़ा सामान्य भाजक, जो सभी शून्य नहीं हैं, सबसे बड़ा धनात्मक पूर्णांक है जो प्रत्येक पूर्णांक को विभाजित करता है। जीसीडी को ग्रेटेस्ट कॉमन फैक्टर के रूप में भी जाना जाता है। दो संख्याओं का लघुत्तम समापवर्तक (LCM)

  1. सी ++ प्रोग्राम जीसीडी खोजने के लिए

    दो संख्याओं का सबसे बड़ा सामान्य भाजक (GCD) उन दोनों को विभाजित करने वाली सबसे बड़ी संख्या है। उदाहरण के लिए:मान लें कि हमारे पास 45 और 27 दो संख्याएँ हैं। 45 = 5 * 3 * 3 27 = 3 * 3 * 3 तो, 45 और 27 का GCD 9 है। दो संख्याओं का GCD ज्ञात करने का कार्यक्रम इस प्रकार दिया गया है। उदाहरण #include <

  1. मुझे वर्तमान C या C++ मानक दस्तावेज़ कहाँ मिल सकते हैं?

    आप वर्तमान C मानक दस्तावेज़ ANSI वेब स्टोर पर पा सकते हैं। https://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2FISO%2FIEC+9899-2012 आप खरीदने के लिए ISO C++ वेबसाइट पर वर्तमान C++ मानक दस्तावेज़ पा सकते हैं - https://www.iso.org/standard/68564.html आईएसओ सी++ मानक का वर्किंग ड्राफ्ट https://i