第一种:用较小数的最大约数于较大数作求模元算
#include<stdio.h>
/*
求两个数的最大公约数
*/
int main(){
int a,b,max,min,i,result;
scanf("%d,%d",&a,&b);
printf("您输入的的值分别为%d,%d\n",a,b);
if(a>b){
max=a;
min=b;
}else if(a == b){
result=a;
goto out;
}else{
max=b;
min=a;
}
for(i=min;i>0;i--){
if((min%i) == 0){
if((max%i) == 0){
result = i;
goto out;
}
}
}
out:
printf("最大公约数为:%d\n",result);
return 0;
}
第二种:古老的数学算法--辗转想除法
#include<stdio.h>/* 求两个数的最大公约数 使用辗转相除法*/int main(){ int a,b,max,min,i,result; scanf("%d,%d",&a,&b); printf("您输入的的值分别为%d,%d\n",a,b); if(a>b){ max=a; min=b; }else if(a == b){ result=a; goto out; }else{ max=b; min=a; } while(min != 0 ){ i=max%min; printf("%d,%d,%d\n",max,min,i); max=min; min=i; } out: printf("最大公约数为:%d\n",max); return 0;}