কম্পিউটার টিউটোরিয়াল

রিকার্সন ব্যবহার করে GCD (Greatest Common Divisor) বের করার C++ প্রোগ্রাম


GCD (Greatest Common Divisor) = দুটি সংখ্যা বিভাজ্য সর্বোচ্চ সংখ্যা। উদাহরণ: ৬৩ এবং ৪২-এর GCD = ২১।

পদ্ধতি ১: সাবট্রাকশন বেজড (Euclidean Algorithm - Subtraction Version)

#include <iostream>
using namespace std;

int gcd(int a, int b) {
    if (a == 0 || b == 0)
        return 0;
    else if (a == b)
        return a;
    else if (a > b)
        return gcd(a - b, b);
    else
        return gcd(a, b - a);
}

int main() {
    int a = 63, b = 42;
    cout << "GCD of " << a << " and " << b << " is " << gcd(a, b);
    return 0;
}

আউটপুট

GCD of 63 and 42 is 21

পদ্ধতি ২: মডুলো বেজড (Euclidean Algorithm - Standard)

#include <iostream>
using namespace std;

int gcd(int a, int b) {
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

int main() {
    int a = 63, b = 42;
    cout << "GCD of " << a << " and " << b << " is " << gcd(a, b);
    return 0;
}

আউটপুট

GCD of 63 and 42 is 21

ব্যাখ্যা

পদ্ধতি ১ (Subtraction)

  • বড় থেকে ছোট বিয়োগ করে রিকার্সন।
  • যখন সমান হয়, তা GCD।
  • দ্রুত নয়, অনেক রিকার্সিভ কল লাগে।

পদ্ধতি ২ (Modulo - Standard Euclidean)

  • gcd(a, b) = gcd(b, a % b)।
  • বহুত দ্রুত (O(log min(a,b)))।
  • স্ট্যান্ডার্ড এবং প্রয়োগযোগ্য।

C++17: std::gcd(a, b) (<numeric>) লাইব্রেরি ফাংশন ব্যবহার করা যাবে।

  1. রিকার্সিভ ফাংশন ব্যবহার করে GCD বের করার সি প্রোগ্রাম

  2. C++ ব্যবহার করে এলিপসের এরিয়া বের করা

  3. C++ প্রোগ্রাম: LCM (লঘুতম সাধারণ গুণিতক) নির্ণয়

  4. C++ প্রোগ্রাম: GCD (মহত্তম সাধারণ ভাজক) নির্ণয়