通过MCP连接 →

输入计算

请输入两个或多个正整数,例如 12, 18, 24

数学公式

广告

结果

最大公约数(GCD)
6
又称 GCF / HCF
最小公倍数(LCM)
72
最小的公共倍数
已输入的数字 3
计算方法 欧几里得算法(辗转相除法)

这个计算器能做什么

本工具可以一次性求出一组整数(两个或两个以上)的两个核心数论量:最大公约数(GCD)——在中文里也常称为最大公因数,英文又写作 GCF(Greatest Common Factor)或 HCF(Highest Common Factor);以及最小公倍数(LCM)。最大公约数是能够整除所有输入数字的最大正整数;最小公倍数则是所有输入数字都能整除它的最小正整数。从约分、通分到日程排期、齿轮传动比,乃至密码学,这两个概念都随处可见。

如何使用

输入两个或多个正整数,用逗号或空格隔开,例如 12, 18, 24,然后提交即可。负数会自动取绝对值,小数会四舍五入为最接近的整数。计算器会同时返回最大公约数和最小公倍数。如果其中有任意一个数为 0,最小公倍数将显示为 0,因为 0 与其他数字之间不存在共同的正倍数。

计算原理解析

对于两个数,最大公约数采用欧几里得算法(辗转相除法):不断把数对 \((a, b)\) 替换为 \((b, a \bmod b)\),直到第二个数变为 0,此时剩下的第一个数就是最大公约数。最小公倍数则由公式 \((a / \gcd) \times b\) 求得,先做除法是为了避免数值溢出。对于三个或更多的数,结果按两两递推的方式逐步求得:先算出前两个数的结果,再把它与下一个数组合,依次类推。

$$\gcd(a_1,\dots,a_k), \qquad \operatorname{lcm}(a_1,\dots,a_k) = \frac{|a_i \cdot a_j|}{\gcd(a_i,a_j)}$$ $$\text{where}\quad \left\{ \begin{aligned} a_1,\dots,a_k &= \text{Integers (abs. values)} \\ \gcd &= \text{computed via the Euclidean algorithm} \end{aligned} \right.$$

韦恩图,交集标注为两数的最大公约数,并集标注为最小公倍数
公共质因数构成最大公约数;所有因数合起来构成最小公倍数。
展示欧几里得算法将 gcd(a,b) 替换为 gcd(b, a mod b) 的步骤链
欧几里得算法不断替换数对,直到余数为零。

实例演算

以 12、18、24 为例。先算 \(\gcd(12, 18) = 6\),再算 \(\gcd(6, 24) = 6\),所以最大公约数为 6。求最小公倍数:$$\operatorname{lcm}(12, 18) = 12 \times 18 / 6 = 36$$再算 $$\operatorname{lcm}(36, 24) = 36 \times 24 / 12 = 72$$所以最小公倍数为 72。验证一下:\(72 \div 12 = 6\),\(72 \div 18 = 4\),\(72 \div 24 = 3\),而 6 也能整除这三个输入数字。

常见问题

GCD 和 GCF、HCF 是一回事吗?是的——最大公约数(Greatest Common Divisor)、最大公因数(Greatest Common Factor)和最高公因数(Highest Common Factor)只是同一个数字的三种叫法。

如果两个数没有公因数怎么办?如果最大公约数为 1,说明这两个数互质,它们的最小公倍数就等于两数的乘积。

可以输入超过两个数字吗?当然可以。你可以输入任意多个整数,计算器会针对整组数字求出最大公约数和最小公倍数。

最后更新: