সমস্যা বিবরণ
দুটি ইন্টিজার p এবং q দেওয়া আছে। ন্যূনতম সম্ভাব্য সংখ্যা x খুঁজে বের করতে হবে যাতে q % x = 0 এবং x % p = 0। যদি শর্তপূরণ করে এমন কোনো সংখ্যা না থাকে, তবে -1 প্রিন্ট করুন।
উদাহরণ
যদি p = 3 এবং q = 66 হয়, তবে উত্তর ৩: 66 % 3 = 0 3 % 3 = 0
অ্যালগরিদম
- যদি কোনো সংখ্যা x শর্ত পূরণ করে, তবে očিতভাবে q, p দিয়ে বিভাজ্য হবে (q % p = 0) কারণ x হল p-এর গুণিতক এবং q হল x-এর গুণিতক।
- সুতরাং x-এর ন্যূনতম সম্ভাব্য মান হবে p এবং q-এর GCD। আর q যদি p দিয়ে বিভাজ্য না হয়, তবে শর্ত পূরণ করে এমন কোনো সংখ্যা থাকবে না।
সি++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int getMinValue(int p, int q) {
if (q % p == 0)
return __gcd(p, q);
return -1;
}
int main() {
int p = 3, q = 66;
cout << "Minimum value = " << getMinValue(p, q) << endl;
return 0;
}
আউটপুট
Minimum value = 3