সমস্যা বিবরণ
দুটি সংখ্যা দেওয়া থাকলে, তাদের GCD (Greatest Common Divisor) বা HCF (Highest Common Factor) বের করুন। এটি আগের আর্টিকেলের সমান কিন্তু ভিন্ন বেস কেস।
সমাধানের পদ্ধতি (ইউক্লিডিয়ান অ্যালগরিদম)
- বেস কেস: a==0 → b, b==0 → a, a==b → a।
- যদি a > b:
gcd(a-b, b) - অন্যথায়:
gcd(a, b-a)
C++ কোড উদাহরণ
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (a == 0) return b;
if (b == 0) return a;
if (a == b) return a;
if (a > b) return gcd(a - b, b);
return gcd(a, b - a);
}
int main() {
int a = 98, b = 56;
cout << "GCD of " << a << " and " << b << " is " << gcd(a, b);
return 0;
}
আউটপুট
GCD of 98 and 56 is 14
জটিলতা
- সাবট্রাকশন: O(max(a,b))
- মডুলো ভার্সন: O(log min(a,b))