最大公约数(GCD)的Euclid算法

来源:互联网 发布:ubuntu 15.10 163源 编辑:程序博客网 时间:2024/06/07 01:49

题目描述:要求用户两个整数,然后计算并显示这两个整数的最大公约数
一开始我用我的思路解的

#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;}

算法真的是种好东西!

原创粉丝点击