欧几里得算法原理

欧几里得算法原理

欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。
gcd(a,b)=gcd(b,a mod b);

欧几里得算法证明过程

a可以表示成a = kb + r,则r = a mod b
假设d是a,b的一个公约数,则有
d|a, d|b,而r = a - kb,因此d|r
因此d是(b,a mod b)的公约数

欧几里得算法核心代码

public static long gcd(long m,long n){
    while(n != 0){
        long rem = m%n;
        m = n;
        n = rem;
    }
    return m;
}

你可能感兴趣的:(数据结构与算法分析)