题目描述:要求用户两个整数,然后计算并显示这两个整数的最大公约数
一开始我用我的思路解的
#include<stdio.h>
int main(){
int a,b,i,x;
printf("Enter two intergers:");
scanf("%d%d",&a,&b);
for(i=1;i<100000;i++){
if(a%i==0&&b%i==0)x=i;
if(i==a&&i==b)break;
}
printf("In lowest terms:%d",x);
return 0;
}
后来发现了Euclid这种算法,更简单,而且大大减少了循环次数!!!
#include<stdio.h>
int main(){
int a,b,i,x;
printf("Enter two intergers:");
scanf("%d%d",&a,&b);
do{
i=a%b;
a=b;
b=i;
}while(b!=0);
printf("%d",a);
return 0;
}
算法真的是种好东西!