跳到主内容
UniKit

最大公约数最小公倍数

一次算出多个整数的最大公约数与最小公倍数,并给出质因数分解、欧几里得步骤、贝祖系数、连分数展开与最简整数比。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

结果

全部使用 BigInt 精确计算:任意大的整数都不会因为浮点精度而算错。质因数分解上限为 10^12。

最大公约数 GCD6
最小公倍数 LCM72
质因数分解
12 = 2^2 × 3
18 = 2 × 3^2
24 = 2^3 × 3

这个工具能做什么

  • 给分数或比例约分:输入两个数拿到 GCD,再用它把分子分母同时除小,得到最简形式。
  • 通分或排周期:算 LCM 找最小公共周期,例如两个齿轮、两个任务循环什么时候再次同时对齐。
  • 做数学作业时核对过程:欧几里得步骤与质因数分解会一步步列出,便于对照课本写法。
  • 竞赛或密码学入门:贝祖系数与连分数是扩展欧几里得、模逆元、有理逼近的基础,这里可以随手验证。

示例

输入

12 18 24

输出

GCD = 6,LCM = 72,质因数分解:12 = 2^2 × 3、18 = 2 × 3^2、24 = 2^3 × 3

欧几里得步骤、贝祖系数与连分数只对恰好两个数显示,多输入时只给 GCD / LCM 与分解。

常见问题

大整数会不会算错?

不会。所有中间结果都用 BigInt 保存,超过 2^53 之后仍然逐位精确。只有质因数分解做了 10^12 的上限,因为再大就得换成 Pollard-Rho 之类的算法,浏览器里会明显卡顿。

负数和小数支持吗?

负数支持,GCD 与 LCM 都取绝对值后计算,质因数分解会给负数补一个 -1 因子。小数不支持:非整数输入会直接报错,请先把小数化成分数再输入分子分母。

LCM 是怎么避免溢出的?

先算 gcd 再算 |a ÷ gcd × b|,而不是先乘后除,这样中间结果不会膨胀到无意义的量级。由于用的是 BigInt,即使不这样做也不会溢出,只是更省内存。

贝祖系数是唯一的吗?

不是。满足 a·x + b·y = gcd(a, b) 的整数对有无穷多组,相差 (b/g, -a/g) 的整数倍。这里给出的是扩展欧几里得算法在辗转相除过程中自然得到的那一组,是最小的一对之一。

连分数有什么用?

连分数是求有理数最佳逼近的标准工具,渐近分数会交替地从上下两侧逼近真值。它和欧几里得算法本质上是同一个过程,只是把每一步的商收集起来。

关键词:gcdlcmgreatest common divisorleast common multipleeuclidean algorithmbezoutprime factorizationcontinued fraction最大公约数最小公倍数质因数分解辗转相除法约分

同类工具