দুই ধনাত্মক পূর্ণসংখ্যা X এবং Y দেওয়া আছে। নিম্নলিখিত নিয়ম অনুযায়ী পরিবর্তন করে চূড়ান্ত X এবং Y বের করতে হবে:
- যদি X=0 এবং Y=0 হলে প্রক্রিয়া বন্ধ।
- যদি X ≥ 2Y হলে X = X - 2Y, ধাপ ১-এ যান।
- যদি Y ≥ 2X হলে Y = Y - 2X, ধাপ ১-এ যান।
- অন্যথায় প্রক্রিয়া বন্ধ।
বड़े সংখ্যার জন্য ব্রুট ফোর্স না করে মডুলো অপারেশন ব্যবহার করা হয়।
উদাহরণ
#include <iostream>
using namespace std;
void alterNumber(long long x, long long y) {
while (true) {
if (x == 0 || y == 0) break;
if (x >= 2 * y) x %= (2 * y);
else if (y >= 2 * x) y %= (2 * x);
else break;
}
cout << "X: " << x << "\nY: " << y;
}
int main() {
long long x = 12, y = 5;
alterNumber(x, y);
return 0;
}
আউটপুট
X: 0 Y: 1