最大公约数 & 最小公倍数计算器
计算多个数字的最大公约数和最小公倍数
100% 客户端处理
数字:
最大公约数与最小公倍数计算器能求出一组整数的 GCD 和 LCM,并展示约简步骤。当你需要约分、对齐重复日程或核对齿轮比时,它就是该用的工具,而且它支持的输入不止一对。
使用方法
- 输入两个或更多数字,用逗号或空格分隔。
48, 18和48 18这样的混合写法都可以。 - 读取两个结果:GCD 和 LCM。
- 展开步骤面板,按顺序查看每一次成对计算。
- 一键复制任一结果。
解析器会在任意连续逗号或空白处切分,并忽略不是数字的记号,因此多余的分隔符、末尾逗号和粘贴进来的换行都不会报错。
实操示例: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 为例:
| 步骤 | 运算 | 结果 |
|---|---|---|
| 1 | GCD(12, 18) | 6 |
| 2 | GCD(6, 24) | 6 |
| 3 | LCM(12, 18) | 36 |
| 4 | LCM(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 团队审校 · 最后更新