zoukankan      html  css  js  c++  java
  • 欧几里得算法


    欧几里得算法


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

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

        假设两个整数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)。

  • 相关阅读:
    JSP——useBean
    jsp 几种跳转
    jsp MIME
    T-SQL之触发器(下)
    T-SQL之触发器
    T-SQL之存储过程
    T-SQL之游标
    T-SQL之自定义函数
    T-SQL之函数
    T-SQL复习心得(1)变量
  • 原文地址:https://www.cnblogs.com/zhanglei93/p/5536059.html
Copyright © 2011-2022 走看看