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