有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。
2 6 2 12 4
48
这道题其实是一道关于最大公约数的,数据不大正常暴力求解就能AC,虽然学长说过有数学方法,不过还是没听懂,还是暴力解出来了,并不难,所以也就不过多解释了,看代码就能懂,代码如下:
这里还有一个脑残知识点,算是我自己总结的吧,最大公约数小于等于两个原数,当然你们或许也都知道,我只是确定一下QAQ#include<stdio.h> int gcd(int a,int b) { if(a<b) { int p=a; a=b; b=p; } while(b){ int tem=b; b=a%b; a=tem; } return a; } main() { int t; scanf("%d",&t); while(t--) { int a,b,c; scanf("%d%d",&a,&b); for(c=b+1;c<1000000;c++) { if(gcd(a,c)==b) { printf("%d\n",c); break;} } } return 0; }