【C语言】辗转相除法.c

#include<stdio.h>
//求两个数的最大公约数 
int main(){
int a,b;
int t;
scanf("%d %d",&a,&b);
/*a=4 b=6
a<b 
t=4%6=4 -> a=6 -> b=4
t=6%4=2 -> a=4 -> b=2
t=4%2=2 -> a=2 -> b=2
t=2%2=0 -> a=2 -> b=0
a=6 b=4
a>b
t=6%4=2 -> a=4 -> b=2
t=4%2=2 -> a=2 -> b=2
t=2%2=0 -> a=2 -> b=0
*/
while(b!=0){
t=a%b;//交换a和b的位置
a=b;
b=t; 
//printf("a=%d,b=%d,t=%d\n",a,b,t);
}
printf("gcd=%d\n",a);
return 0;
}

猜你喜欢

转载自blog.csdn.net/renjingjingya0429/article/details/80271714