辗转相除法
假设求18、24 的最大公约数
分出大的数和小的数
24/18=1。。。。6
18/6=3.。。。。0
即最大公约数为 6
解题:
所以 首先要求出其余数
然后将除数变成被除数
把余数变成被除数
循环计算直到余数等于0时输出 除数(被除数是前面的,除数时后面的)
int main(){
int m,n,r;
scanf("%d %d",&m,&n);
int a,b;
a=m>n?m:n;
b=m>n?n:m;
do{
r=a%b;
a=b;
b=r;
} while(r!=0);
printf("%d",a);
}