又见GCD
Problem Description
有三个正整数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 4
Sample Output
4
8
1 #include <stdio.h> 2 3 int get_gcd(int a,int b); 4 5 int main(){ 6 int T; 7 int a; 8 int b; 9 int c; 10 11 scanf("%d",&T); 12 13 while(T--){ 14 scanf("%d%d",&a,&b); 15 c=2*b; 16 17 while(1){ 18 if(get_gcd(a,c)==b){ 19 printf("%d\n",c); 20 break; 21 } 22 c+=b; 23 } 24 } 25 26 27 28 return 0; 29 } 30 31 int get_gcd(int a,int b){ 32 int temp; 33 int remainder; 34 35 if(a<b){ 36 temp=a; 37 a=b; 38 b=temp; 39 } 40 41 while(a%b){ 42 remainder=a%b; 43 a=b; 44 b=remainder; 45 } 46 47 return b; 48 }