2 6 2 12 4
4 8
18 3 15才对
最小的数应该是b的倍数,但b的倍数和a的最大公约数不是b,所以c逐渐增加,直到和a的最大公约数等于b。
#include<cstdio>
int gcd(int a,int b)
{
return !b? a:gcd(b,a%b);
}
int main()
{
int n,a,b,c;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&a,&b);
for(c=1;;c++)
if(c%b==0&&c!=b&&gcd(a,c)==b)
{
printf("%d\n",c);
break;
}
}
return 0;
}
原文:http://blog.csdn.net/qq_16767427/article/details/38082781