最大公约数和最小公倍数

计算多个数的最大公约数和最小公倍数

如何使用最大公约数和最小公倍数

  1. 1输入两个或多个整数。
  2. 2运行计算器求最大公约数。
  3. 3查看最大公约数,以及(如需)欧几里得算法的步骤。

最大公约数

gcd(a,b) = gcd(b, a mod b),直到余数为 0;最后一个非零余数即最大公约数

最大公约数是能无余数整除每个输入的最大整数,用于把分数约到最简。

欧几里得算法不断用余数替换较大数,比逐个试除快得多。

辗转相除法的核心洞察是:gcd(a, b) = gcd(b, a mod b)。也就是说,两个数的最大公约数,等于较小数与余数的最大公约数。反复应用这个关系直到余数为 0,最后的除数就是答案。它的效率极高——即使对几百位的数,计算次数也只是位数的小倍数,这是它历经两千多年仍在使用的原因。

最大公约数的实用场景比想象中多:约分分数(分子分母同除 GCD 直接得到最简形式)、铺砖问题(用最大尺寸的正方形砖铺满矩形地面,砖边长就是长宽的 GCD)、以及密码学(RSA 算法需要计算模逆元,用扩展欧几里得算法)。两个数 GCD 为 1 时称「互质」,这在分数运算和密码学中都有特殊意义。

数对计算过程GCD说明
12, 1818 = 12×1 + 6 → 12 = 6×2 + 06余数为 0 时的除数
48, 1848 = 18×2 + 12 → 18 = 12×1 + 6 → 12 = 6×2 + 06三步得出
100, 75100 = 75×1 + 25 → 75 = 25×3 + 025两步得出
17, 517 = 5×3 + 2 → 5 = 2×2 + 1 → 2 = 1×2 + 01互质

用辗转相除法(欧几里得算法)求最大公约数

常见问题

最大公约数有什么用?

约分,以及作为求最小公倍数与模运算的一步。

负数有最大公约数吗?

有,最大公约数取绝对值,符号不影响结果。

若两数无公因数?

则最大公约数为 1,两数称为互质。

为什么叫「辗转相除」?

「辗转」是反复、轮流的意思,形象地描述了算法过程:用大数除以小数,再用上一轮的除数和余数继续相除,一轮轮「辗转」下去直到余数为零。这个方法记载于欧几里得《几何原本》(约公元前 300 年),是人类历史上最早记载的算法之一,比很多后来的数学发现早了一千多年。

三个数的最大公约数怎么求?

利用结合律:gcd(a, b, c) = gcd(gcd(a, b), c)。先求前两个数的 GCD,再用这个结果与第三个数求 GCD,可以推广到任意多个数。例如求 gcd(12, 18, 30):先算 gcd(12, 18) = 6,再算 gcd(6, 30) = 6,答案是 6。同理,多个数的最小公倍数也可以用 lcm(a, b, c) = lcm(lcm(a, b), c) 递推。

更多工具