1132.最大公约数改 SDNUOJ1132
Description
有三个正整数a,b,c(0 < a,b,c < 10^12),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。
Input
第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b。
Output
输出对应的c,每组测试数据占一行。
Sample Input
2
6 2
12 4
Sample Output
4
8
#include <iostream>
#include <cstdio>
using namespace std;
long long gcd(long long a, long long b)
{
return b == 0 ? a : gcd(b, a % b);
}
int main()
{
int n;
cin >> n;
// int cnt = 1;
while(n--)
{
long long a, b;
scanf("%lld%lld", &a, &b);
long long c = b * 2;
while(gcd(a, c) != b)
c += b;
// printf("Case #%d: ", cnt);
// cnt++;
cout << c << '\n';
}
return 0;
}