题目:
又见GCD |
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) |
Total Submission(s): 2685 Accepted Submission(s): 1327 |
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 |
Source 《ACM程序设计》短学期考试_软件工程及其他专业 |
Recommend lcy |
题目分析:
按照题意,从小到大一个一个的找题意中的c即可
代码如下:
/*
* d.cpp
*
* Created on: 2015年1月30日
* Author: Administrator
*/
#include <iostream>
#include <cstdio>
const int maxn = 1000005;
/**
* 求最大公约数
*/
int gcd(int a,int b){
int temp;
while(b != 0){
temp = b;
b = a%b;
a = temp;
}
return a;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
int a,b;
scanf("%d%d",&a,&b);
int i;
for(i = 1 ; i <= maxn ; ++i){
if(gcd(a,i) == b && i != b){
printf("%d\n",i);
break;
}
}
}
return 0;
}