বিবেচনা করুন আমাদের কাছে দুটি ধনাত্মক পূর্ণসংখ্যা 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