数学计算 本地计算 开箱即用 内置示例 不留痕迹

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

输入两个或多个整数,一次算出最大公约数与最小公倍数,并列出每个数的质因数分解,方便核对与讲解。

约分要最大公约数,通分要最小公倍数,小学高年级数学绕不开这对概念;往深处走,分数化简、周期问题、齿轮啮合,用的还是它们。把几个整数一起丢进来,两个答案连同各自的质因子拆解一起给出——拆解式摆在那里,解题过程都能对着讲。

关系与口径:LCM(a,b) = a × b ÷ GCF(a,b)(两数时恒成立,多数要两两递推);本工具支持负数输入但 GCF/LCM 按绝对值给出(数学惯例取正);质因数分解对大数可能较慢,超出范围的会提示。

使用步骤

  1. 输入两个或多个整数(逗号或空格分隔)。
  2. 看 GCF 与 LCM,以及每个数的质因数分解。
  3. 核对关系:两数时 LCM = a × b ÷ GCF。
  4. 复制结果;约分用 GCF,通分用 LCM。

计算原理与示例

数据怎么输入

用逗号(中英文都可以)、空格或换行分隔整数,例如 12, 18, 24;至少输入两个数。

最大公约数怎么算

最大公约数用辗转相除法逐对求:先求前两个数的公约数,再与第三个数求公约数,依次类推。例如 gcd(12,18) = 6,再与 24 求得 6。

最小公倍数怎么算

最小公倍数的公式是 lcm(a,b) = a × b ÷ gcd(a,b)。多个数则逐步合并:先算前两个的 LCM,再与下一个数合并。

质因数分解的用途

质因数分解把每个数写成质数幂的乘积(如 360 = 2³ × 3² × 5)。它也是求 GCD 与 LCM 的另一种方法:GCD 取公共质因数的最小次幂,LCM 取全部质因数的最大次幂。

代码示例

JavaScript 辗转相除 + 递推 LCM

const gcd = (a, b) => b ? gcd(b, a % b) : a;

function gcfLcm(...nums) {
  const g = nums.reduce((a, b) => gcd(a, b));
  const l = nums.reduce((a, b) => a * b / gcd(a, b));
  return { gcf: g, lcm: l };
}

gcfLcm(12, 18, 24);   // { gcf: 6, lcm: 72 }

Python math.gcd 与 lcm

import math
from functools import reduce

math.gcd(12, 18)      # 6
math.lcm(12, 18)      # 36(Python 3.9+)

# 多个数:
reduce(math.gcd, [12, 18, 24])   # 6
reduce(math.lcm, [12, 18, 24])   # 72

常见问题

最大公约数和最小公倍数分别用在哪里?

最大公约数用于约分分数、等分物品、简化比例,例如把 12/18 约成 2/3 就是除以 GCD 6。最小公倍数用于通分、找两个周期性事件再次同时发生的时刻,例如两班车 4 分钟与 6 分钟一班,12 分钟后再次同时发车。

为什么最小公倍数要用最大公约数来算?

因为 a × b 恰好等于 gcd(a,b) × lcm(a,b),所以 lcm(a,b) = a × b ÷ gcd(a,b)。直接靠试除找最小公倍数在大数上很慢,先用辗转相除法得到 GCD 再除一次是最快的做法,本工具就是按这个顺序计算的。

可以输入负数吗?

可以,但结果按绝对值计算。数学上 gcd(−12, 18) 通常取正的 6,本工具沿用这一约定,负数会被自动取绝对值,屏幕上的展示不做符号变化。

含有 0 时结果是多少?

最小公倍数含 0 时结果为 0,因为 0 是任何数的倍数。最大公约数则不受影响:gcd(0, 5) = 5,0 与任何数的公约数就是那个数本身的约数。

最多可以输入多少个数?

列表长度没有硬性限制,但每个数都参与质因数分解,输入几十个上千的数会明显变慢。日常通分、约分场景通常在 2 至 5 个数以内,计算是瞬时的。

结果太长显示成字符串是什么情况?

当最小公倍数超过 JavaScript 的整数安全范围(2^53 − 1,约 9×10^15)时,为了避免用浮点数表示而丢精度,工具会改以精确的数字字符串输出。这种情况通常出现在多个接近十万的大质数之间。

质因数分解有什么限制?

只支持 10^15 以内的正整数,用的是试除法:超出范围会提示数字过大。分解 1 返回空结果(1 没有质因数),质数则返回它自己。

输入的数字会被记录或上传吗?

不会上传。整个计算在浏览器本地完成,服务器只提供页面文件。计算历史保存于本机 localStorage,可以直接点历史区的清空按钮删除,使用无痕窗口则不会留下任何记录。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。