有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。
Input第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b。
Output输出对应的c,每组测试数据占一行。
Sample Input
2 6 2 12 4Sample Output
4 8
gcd 判断函数:
int gcd(int a,int b){
return (b>0) ?gcd(b,a%b):a;
}
注意 条件运算与 辗转相除法;
1 #include<stdio.h> 2 int gcd(int a,int b); 3 int main(){ 4 int T,a,b,c; 5 scanf("%d",&T); 6 while(T--){ 7 scanf("%d%d",&a,&c); 8 b=2*c; 9 while(gcd(a,b)!=c){ 10 b+=c; 11 } 12 printf("%d ",b); 13 } 14 return 0; 15 } 16 int gcd(int a,int b){ 17 return (b>0) ?gcd(b,a%b):a; 18 }