质因数分解 · GCD · LCM
日常
输入一个或两个正整数。每个数都会给出:`p^e × q^f` 形式的质因数分解、全部因数、以及是否为质数。同时输入两个时,还会算出 GCD(最大公约数——约分时常用)与 LCM(最小公倍数——求公共周期常用)。试除法跑到 √n,对 ~10¹² 内的数足够快,全程在浏览器内完成。
—
GCD(最大公约数)
36
LCM(最小公倍数)
2520
360
质因数分解
2^3 × 3^2 × 5
因数 (24)
1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 18, 20, 24, 30, 36, 40, 45, 60, 72, 90, 120, 180, 360
252
质因数分解
2^2 × 3^2 × 7
因数 (18)
1, 2, 3, 4, 6, 7, 9, 12, 14, 18, 21, 28, 36, 42, 63, 84, 126, 252
试除法到 √n。~10¹² 以内输入很快。为保流畅,n > 10⁹ 时跳过因数扫描。
使用方法
- 在 A 框输入数字,得到质因数分解、因数、质数判定。
- 在 B 框再输入一个数字,可同时算 GCD 与 LCM。
- 可复制质因数分解或查看因数列表。极合成数的因数列表最多显示前 200 个。
常见问题
- 最大支持多大?
- 约 10¹²(万亿)。超过这个数,JavaScript 整数精度开始失真(Number.MAX_SAFE_INTEGER = 2⁵³ ≈ 9×10¹²),试除到 √n 也会变慢。更大需用 BigInt 与 Pollard's rho。
- 为什么大数不列因数?
- 为避免拖死 CPU,因数扫描限制在 n < 10⁹。质因数分解仍可运行——按最大质因数 O(√n),通常远小于 n 本身。
- GCD 有什么用?
- 约分:252/360 = ? GCD(252, 360) = 36,所以 252/360 = 7/10。也用于密码学(RSA),以及判断两个周期何时对齐。
- LCM(a, b) = a × b / GCD(a, b) 吗?
- 正整数下永远成立。我们就是用这个恒等式。直观理解:LCM 取 a 与 b 各质因数的最高次幂,GCD 取最低次幂,相乘即得 a × b。