1.最笨的办法,枚举法,不用动脑子的方法
#include <stdio.h>
//最笨的办法枚举法
int main()
{
int a,b;
int min;
scanf("%d %d",&a,&b);
if(a<b){
min=a;
}else{
min=b;
}
int ret = 0;
int i;
for(i=1;i<min;i++){
if(a%i==0){
if(b%i==0){
ret=i;
}
}
}
printf("%d和%d的最大公约数是%d",a,b,ret);
return 0;
}
方法二:辗转相除法
```c
#include <stdio.h>
/**
如果b等于0,计算结束,a就是最大公约数
否则,计算a除以b的余数,让a等于b,b就是那个余数;
回到第一步;
a b t
12 18 12
18 12 6
12 6 0
6 0
*/
int main()
{
int a,b;//输入的俩个数
int ret;//余数
scanf("%d %d",&a,&b);
while(b!=0){
ret=a%b;
a=b;
b=ret;
}
printf("gcd=%d\n",a);
return 0;
}