欧几里得求最大公约数(最小公倍数)

来源:互联网 发布:支撑点的算法 编辑:程序博客网 时间:2024/05/05 20:48

欧几里得算法:两个数的最大公约数为其中较小的一个数与两数相除的余数的最大公约数

即gcd(a,b)=gcd(b,a%b)  无论a>b或者a<=b都成立

求最小公倍数先将最大公约数 x 求出,最小公倍数=a*b/x

//非递归算法int gcd1(int m,int n){    int r=1;    while(r!=0)    {        r=m%n;        m=n;        n=r;    }    return m;}

//递归算法int gcd2(int a,int b){    if(a%b==0) return b;    else        return gcd2(b,a%b);}

0 0