HandyTools Hub

最大公约数 & 最小公倍数计算器

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

100% 客户端处理

最大公约数与最小公倍数计算器能求出一组整数的 GCD 和 LCM,并展示约简步骤。当你需要约分、对齐重复日程或核对齿轮比时,它就是该用的工具,而且它支持的输入不止一对。

使用方法

  1. 输入两个或更多数字,用逗号或空格分隔。48, 18 和 48 18 这样的混合写法都可以。
  2. 读取两个结果:GCD 和 LCM。
  3. 展开步骤面板,按顺序查看每一次成对计算。
  4. 一键复制任一结果。

解析器会在任意连续逗号或空白处切分,并忽略不是数字的记号,因此多余的分隔符、末尾逗号和粘贴进来的换行都不会报错。

实操示例:GCD(48, 18)

GCD 使用欧几里得算法:用较大数除以较小数,用较小数和余数替换原来的一对,重复直到余数为零。最后一个非零余数就是 GCD。

48 ÷ 18 = 2 余 12
18 ÷ 12 = 1 余  6
12 ÷  6 = 2 余  0

最后一个非零余数是 6,所以 GCD(48, 18) = 6。工具对这对数的步骤行是 GCD(48, 18) = 6。

随后 LCM 由下面的恒等式得出:48 × 18 ÷ 6 = 144。作为检验,48 和 18 都能整除 144,而且没有更小的数能做到。

扩展到三个或更多数字

输入超过两个时,计算按链条进行。以列表 12, 18, 24 为例:

步骤运算结果
1GCD(12, 18)6
2GCD(6, 24)6
3LCM(12, 18)36
4LCM(36, 24)72

总 GCD 是 6,LCM 是 72。成对折叠之所以有效,是因为 gcd 和 lcm 在正整数上都满足结合律和交换律,所以输入的先后顺序不改变最终答案。

GCD 与 LCM 的关系公式

对任意两个正整数 a 和 b:

GCD(a, b) × LCM(a, b) = a × b

工具使用变形后的形式,在得到 GCD 之后才计算 LCM:

LCM(a, b) = (a × b) / GCD(a, b)

这比逐个分解质因数更高效、也更不容易出错,同时解释了为什么一对数的 LCM 总能被这两个数整除。两者互为对偶:GCD 是同时装进两个数的最大块,LCM 是能被两个数正好填满的最小容器。

对一组数字而言,这个恒等式是逐对延伸的,而不是作为一个乘积整体成立,这也是步骤按成对展示的原因。

边界情况与局限

  • 小数会被四舍五入。 每个输入都经过 Math.round,所以 2.5 变成 3,4.4 变成 4。结果列表里显示的是取整后的整数,而不是你输入的值。
  • 零会把 LCM 变成零。 GCD(0, 5) = 5,但 LCM(0, 5) = 0。步骤行写作 LCM(0, 5) = 0 (contains zero)。
  • 负数取绝对值。 GCD(-12, 18) = 6,LCM(-12, 18) = 36。
  • 大的互质输入可能溢出。 受 JavaScript 双精度数字限制,LCM 只在约 9000 万亿以内精确。像 999983, 999979, 999961 这样的一组数可能超出该范围。
  • 非数字记号会被丢弃。 12, abc, 18 会静默变成 12, 18,所以信任结果前请核对解析出的数字列表。

用 GCD 约分

GCD 最常见的用途是把分数化为最简。用最大公约数去除分子和分母,一步就能约分,因为这个约数按定义就是两者共有的最大因子。

以 48/18 为例。GCD 是 6,上下同除:48 ÷ 6 = 8,18 ÷ 6 = 3,得到 8/3。没有更小的一对整数能表示同一个值,而 8 和 3 互质,即它们的 GCD 为 1。分母为负时同样安全,因为工具取绝对值,按符号惯例 48/-18 也约成 -8/3。

LCM 是加减法时的对应物。要把 1/12 和 1/18 相加,需要一个公分母,最小的是 LCM(12, 18) = 36。把两个分数改写成以 36 为分母:1/12 = 3/36,1/18 = 2/36,和为 5/36。选择 LCM 能让数字尽可能小;任何公倍数都可以,但 36 是最小的。

处理一串分数时,可以一次输入所有分母,用得到的 LCM 作为公共分母。这也是工具接受列表而不只是两个数的原因。

应用场景

  • 分数化简。 分子分母同除以 GCD,一步约分:48/18 变成 8/3。
  • 排期。 LCM 告诉你两个周期性事件下次何时重合。每 12 天和每 18 天会在 36 天后再次对齐。
  • 齿轮比与机械。 用 GCD 给出最简齿数比,用 LCM 显示两个啮合齿轮何时回到起始对位。
  • 数论练习。 看清每一步欧几里得算法,考试时更容易手算复现。

相关工具

常见问题

计算器接受小数吗?

接受作为输入,但会在计算前把每个值四舍五入到最近的整数。输入 4.6 和 9.2 会被当作 5 和 9,得到 GCD 为 1、LCM 为 45。如果需要精确的有理数结果,请先把小数转换成分数。

列表里包含零会怎样?

允许出现零。GCD 把零当作其他数都能整除的值,所以 gcd(0, 5) 是 5。LCM 则不同:任何含零的列表都返回 LCM 为 0,因为零没有正倍数。步骤输出会明确注明这一点。

一次可以输入多少个数字?

没有固定上限。工具从左到右成对折叠计算:先算 GCD(a, b),再把这个结果与第三个数求 GCD,依次类推。LCM 也用同样的成对折叠,这之所以成立,是因为两个运算在整数上都满足结合律。

负号会改变答案吗?

不会。每个输入都会被转换为其绝对值,所以输入 -12 和 18 与输入 12 和 18 得到相同的 GCD 和 LCM:6 和 36。这在分数运算里很重要,负分母很常见,不应改变约分因子。

步骤行告诉我什么?

每一行显示一次成对归约,例如 GCD(48, 18) = 6 或 LCM(36, 24) = 72。从上往下读就复现了工具运行时的欧几里得算法,最后一行给出总答案。

LCM 会不会大到失去精度?

会。LCM 用标准 JavaScript 数字计算,安全上限是 9,007,199,254,740,991。少数几个很大且两两互质的输入就可能超出这个范围,并悄悄丢失精度。GCD 始终精确,因为它总是不超过最小的输入。

由 HandyTools Hub 团队审校 · 最后更新