hdoj 2504 又见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
 
 
 
因为b不等于c,所以y不能等于1,Gcd(x,y)如果大于一,那么最大公约数,就不为b了。
 
 1 #include <iostream>
 2 #include <stdio.h>
 3 using namespace std;
 4 int gcd(int a,int b)
 5     {
 6     return b==0?a:gcd(b,a%b);
 7 }
 8 int main()
 9 {  int n,a,b;
10     scanf("%d",&n);
11     while (n--)
12     {
13         int c,i=2;
14         cin>>a>>b;
15          c=a/b;
16         for(;gcd(c,i)!=1;i++);
17         cout<<b*i<<endl;
18     }
19     return 0;
20 }

 

posted @ 2017-08-09 10:05  浅忆~  阅读(150)  评论(0编辑  收藏  举报