欧几里得算法

Posted best.lei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了欧几里得算法相关的知识,希望对你有一定的参考价值。


欧几里得算法


  定义:欧几里得算法又叫做辗转相除法,用于计算两个整数的最大公约数。

    首先,两个整数的最大公约数等于其中较小的那个数和两数的相除余数的最大公约数,证明如下:

    假设两个整数a、b,其中a = kb + r,d为a、b任意公约数。

    证明:因为d为a、b的公约数,所以a、b都可以被d整除,由a = kb + r可得,r = a - kb,则r/d = a/d - kb/d,因此r也可以被d整除。综上所述(a,b)的公约数和(b,r)相同。故最大公约数也是相同的。   

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

    该算法的时间算法复杂度为O(log N)。

以上是关于欧几里得算法的主要内容,如果未能解决你的问题,请参考以下文章

求最大公约数的欧几里得算法与其伪代码

求最大公约数伪代码

最大公约数伪代码

欧几里得算法和扩展欧几里得算法

通俗易懂----欧几里得算法

欧几里得算法和扩欧