C - 又见GCD(gcd判断函数)

 
   有三个正整数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



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\n",b);
13     }
14     return 0;
15 }
16 int gcd(int a,int b){
17 return (b>0) ?gcd(b,a%b):a;
18 }

 



posted @ 2018-12-03 16:19  易如鱼  阅读(953)  评论(0编辑  收藏  举报