直接用辗转相除法得最大公约数然后去找最小的c就可以了 和1722题类似,注意题目要求c!=b,不要遗漏此条件。
#include<iostream>
using namespace std;
int gcd(int x, int y)
{
if (y==0)
return x;
else return gcd(y, x%y);
}
int main()
{
int n,a,b;
while (cin >> n)
{
while (n--&&cin >> a >> b)
{
for (int c = b;; ++c)
{
if (a > c)
{
if (gcd(a, c) == b&&c!=b)
//不要遗漏c!=b这个条件
{
cout << c << endl;
break;
}
}
else if (gcd(c, a) == b&&c!=b)
{
cout << c << endl;
break;
}
}
}
}
return 0;
}