给定两个整数p和q,任务是找到最小可能数x,以使q%x = 0和x%p =0。如果条件不满足任何数字,则打印-1。
If p = 3 and q = 66 then answer is 3 as: 66 % 3 = 0 3 % 3 = 0
如果数字x满足给定条件,则很明显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; int q = 66; cout << "Minimum value = " << getMinValue(p, q) << endl; return 0; }
当您编译并执行上述程序时。它产生以下输出-
输出结果
Minimum value = 3