《算法》- 欧几里得算法求最大公约数

最大公约数(Greatest Common Divisor, GCD),是指2个或N个整数共有约数中最大的一个。a,b的最大公约数记为(a, b)。相对应的是最小公倍数,记为[a, b]。
在求最大公约数的几种方法中,欧几里得算法(辗转相除法)最为出名:

计算(a, b), 若b是0,则最大公约数为a;否则。将a除以b得到余数r,a和b的最大公约数就是b和r的最大公约数,即:(a, b) = (b, r)

public static int gcd(int a ,int b){
      if(b == 0){
            return a;
      }else{
            return gcd(b, a%b);
      }
}

相应的最小公倍数求法:

public static int lcm(int a ,int b){
      return a*b/gcd(b, a%b);
}
posted @ 2020-05-31 17:32  chengyuabc  阅读(2145)  评论(0编辑  收藏  举报