有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。
2 6 2 12 4
4 8
#include<cstdio>
int gcd(int a,int b) {
return !b?a:gcd(b,a%b);
}
int main() {
int T;
scanf("%d",&T);
while(T--) {
int a,b;
scanf("%d %d",&a,&b);
int res=b*2;
while(gcd(a,res)!=b)
res+=b;
printf("%d\n",res);
}
return 0;
}
那你先列出所有可能的c是哪些
满足b是c的因数
然后你再验证gcd a,c 是不是等于b
因为有可能c满足了约数含b这个条件,但不满足和a的最大公因数为b
你一个一个去试c,满足了就得到了答案了嘛