数论相关_最大公约数最小公倍数

文章目录

  • 最大公约数 Greatest Common Divisor
  • 多个数的最大公约数
  • 最小公倍数 Least Common Multiple
  • 多个数的最小公倍数
  • Tag

最大公约数 Greatest Common Divisor

最大公约数即为 Greatest Common Divisor,常缩写为 gcd
欧几里得算法

public int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b);
}

多个数的最大公约数

取序列中的2个数,生成最大公约数g,然后用g与下一个数再产生最大公约数g,一直到序列结束。
如果出现1,就可以直接结束。

最小公倍数 Least Common Multiple

public int lcm(int a, int b) {
    return a*b/gcd(b, a % b);
}

多个数的最小公倍数

取2个数计算lcm,然后lcm与下一个数再计算最小公倍数,直到计算所有的数。

Tag

数论

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