AZ Tools

质因数分解 · 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⁹ 时跳过因数扫描。

使用方法

  1. 在 A 框输入数字,得到质因数分解、因数、质数判定。
  2. 在 B 框再输入一个数字,可同时算 GCD 与 LCM。
  3. 可复制质因数分解或查看因数列表。极合成数的因数列表最多显示前 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。

相关工具