辗转相除法求最大公约数中“交换”与“推值”
int a,b;//求a,b的最大公约数
int ret=-1,r;
scanf("%d%d",&a,&b);
int temp;
//保证a>b(交换)
if(a<b) {
temp=a;
a=b;
b=temp;
}
r=a%b;//观察余数看是否需要利用辗转相除法
//
printf(“a=%d\tb=%d\tr=%d\n”,a,b,r);
// 格式输出需要
//辗转相除求最大公约数(推值)
while(r!=0) {
r=a%b;
a=b;
b=r;
r=a%b;
printf(“a=%d\tb=%d\tr=%d\n”,a,b,r); }
printf(“最大公约数:%d\n”,b);
//输出结果
511 292
a=511 b=292 r=219
a=292 b=219 r=73
a=219 b=73 r=0
最大公约数:73