1.简单容易理解
int main(){
int m=18,n=36;
int min;
int ret=0;
min=m>n?n:m;
for (int i = 1; i <=min ; ++i) {
if(m%i==0&&n%i==0)
ret=i;
}
printf("%d和%d的最大公约数为:%d",m,n,ret);
}
2.辗转相除法
//如果b=0,计算结束,a就是最大公约数
//否则计算a/b,让a=b,b就是那个余数
//回到第一步
//m n t
//12 18 12
//18 12 6
//12 6 0
//6 0
int main(){
int m=18,n=36;
while (n!=0){
int t = m%n;
m=n;
n=t;
}
printf("%d",m);
}