数学

质因数分解计算器 — 分解质因数并统计约数

把一个整数分解成质因数的乘积,同时给出约数个数和约数之和。

公式与来源更新于 · 数据来源 · 1查看算法、常量和默认输入(JSON)

输入数值

质因数分解式 2^3 × 3^2 × 5
计算结果
示例

逐步除法

横向滑动查看更多

npn ÷ p
3602180
180290
90245
45315
1535
551
因数树360218029024531535
正约数 (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

关于此计算器

输入2至10¹²的整数。试除先从2开始,再依次检查奇数除数,直到剩余值的平方根。 示例: 360 = 2³ × 3² × 5; 约数总个数 = 24; 约数之和 = 1170.

按本站实现于构建时重算 · 核对于 2026-10-22

一万亿有 169 个约数,紧挨着它的那个质数只有两个

约数有多少个,由指数决定,不由数字有多大决定。所以 720,720 的约数比一万亿还多,而它的体量不到后者的百万分之一;也所以本页最慢的一次计算,落在那个怎么也拆不开的数上。

133^21·53·53^2·5122^22^31248361224918367251020401530601204590180360
360 的每一个约数,按它借了哪几个质数排开:2 给四列,3 给三行,5 给两层——4 × 3 × 2 = 24,一个约数都没数,个数已经出来了。

结果怎么变

数值 → · 约数个数
3602,5205,040720,72010⁹
约数个数244860240100

720,720 有 240 个约数,十亿只有 100 个,可十亿比它大了一千倍。约数个数跟着质数的分布走——720,720 身上有六个互不相同的质数——不跟着数字大小走。

四个数,四种形状

所有人都会先拿它试手

质因数分解
2^3 × 3^2 × 5
质因数个数(含重数)
6
不同质数的个数
3
约数个数
24
约数之和
1,170

六个质因数,却只有三个不同的质数;24 个约数等于 4 × 3 × 2——每个指数加一,再相乘。正因为这条恒等式,约数个数不必真的把约数一个个列出来就能得到,它也是拿到任何一份分解后最快的验算手段。

输入范围的天花板

质因数分解
2^12 × 5^12
质因数个数(含重数)
24
不同质数的个数
2
约数个数
169
约数之和
2,499,694,822,171

只有两个不同的质数,却有 169 个约数,因为 13 × 13 把两个大指数乘在了一起。注意最后一行:约数之和超过它自己的两倍——它本身也算自己的一个约数。

小得多,约数却更多

质因数分解
2^4 × 3^2 × 5 × 7 × 11 × 13
不同质数的个数
6
约数个数
240
约数之和
3,249,792

把它和上一张卡片并排看。720,720 不到前者的百万分之一,约数反而更多,因为它凑的是能拿到的最小的那六个质数。约数个数奖励「很多小质数」,不奖励「一个大数字」——所以高合成数的分解里,出现的永远是 2、3、5、7、11、13 的某种排列。

一个摆在明处的完全数

质因数分解
2^6 × 127
约数个数
14
约数之和
16,256

约数之和正好是它自己的两倍,这就是完全数的定义。8,128 等于 2^6 × (2^7 − 1),这个形状可以推广:偶完全数总是一个 2 的幂乘上一个梅森质数。什么时候觉得约数之和不对劲,这是最省事的一次校验——完全数必须等于 2n。

本页愿意接受的最慢输入

质因数分解
999999999989
质因数个数(含重数)
1
不同质数的个数
1
约数个数
2
约数之和
999,999,999,990

这一个大约要 28 毫秒,而上面那个一万亿不到一毫秒:试除法只在「除数超过剩下待分解部分的平方根」时才停。当第二大的因数就是它自己,循环没有任何捷径。答案倒是好读——一个十二位的质数,约数只有 1 和它本身。

哪些输入会被拒绝,上限为什么是时间

  • 你输入的
    number
    1
    它给出的 inputError

    一

    1 是空乘积,压根没有质因数分解。写成 1 = 1 在技术上成立,在用途上等于零,所以这里直接拒绝。

  • 你输入的
    number
    1.5
    它给出的 inputError

    一点五

    只收整数。把 1.5 抬成 2,等于回答一个没人问过的问题;小数输入是退回,而不是替你凑到最近的整数。

  • 你输入的
    number
    1000000000001
    它给出的 inputError

    一万亿零一

    这个上限是时间限制,不是显示限制。试除法要跑到剩余值的平方根,输入大十倍,等待大约长三倍;10¹² 是「最坏情况仍然只花零点几秒」的那条线。

  • 你输入的
    number
    -6
    它给出的 inputError

    负六

    质数只定义在正整数上。符号不会在任何一步被抹掉,所以负数输入是拒绝,而不是悄悄按绝对值分解。

约数那两列背后的约定

只有指数形式和展开式,没有因数树
结果给两遍:一遍带指数,一遍把每个因数摊开写全。没有树状图,也没有质数序号查询——所以本页不会告诉你 97 是第 25 个质数。
约数只算正的,每个只计一次
360 有 24 个约数,1 和 360 自己都在里面。负约数不计,这和通行的 d(n) 表一致;否则每个数都会平白翻一倍。
两次输入之间什么也不缓存
每次输入都从头做一遍试除,不查筛表。同一个数输第二次,花的时间和第一次一模一样;上限的作用,就是让这个承诺有个封顶。
约数之和不是真约数之和
数字本身也算自己的一个约数,于是和小于它是亏数,正好等于两倍是完全数,大于两倍是盈数。有些教材列的是「真约数之和」,那等于这一列减去这个数本身。

和一个因数树计算器对照

  • Calculator Soup prime factors核对于 2026-10-22

    对方算法
    输入上限十万亿,输出因数列表、指数形式、逗号分隔的序列、因数树,以及最大到第一百万个质数的序号。
    本站算法
    输入上限一万亿,输出指数形式、展开式、除法步骤、全部正约数的列表,另加约数个数与约数之和。

    他们为什么这样设计它的结果以长除法阶梯开头,而不是指数形式。这是给教学页做的取舍:过程本身就是答案;代价是大数很慢,因为每一次除法都要印出来。

    约数个数和约数之和没法从因数树上直接读出来——它们由指数决定,而正是把这两个量算出来,才可能做完全数校验。他们的上限高十倍;本页把线画在「试除仍然很快算完」的位置,并且把这个取舍写在明处,而不是藏起来。

输入 720720,把指数读出来:4、2、1、1、1、1。每个加一相乘——5 × 3 × 2 × 2 × 2 × 2 = 240,正是页面上显示的约数个数。再输入 999999999989:分解结果原样返回这个数,约数个数掉到 2,约数之和变成它加一。

把每份质因数分解乘回原数,再用指数公式核对了约数个数 · impl 7934c399

数据来源

免责声明

本计算器提供通用数学结果,适用于学习、规划与估算。若结果将用于评分的作业、公开发表的数据或财务承诺,请另行复核。

维护方: CalcDelta 公式与来源更新于 ·

本站实现依据

此记录说明本页实际使用的实现,并非独立验证。外部引用仅支持明确注明的公式或定义;估算和自定义规则仍有其自身假设。

查看算法、常量和默认输入(JSON)

公式与变量

n = Π p_i^a_i; τ(n) = Π(a_i + 1); σ(n) = Π Σ_{j=0}^{a_i} p_i^j

n
≥2 的整数
p_i
不同的质因数
a_i
p_i 的指数
τ
约数个数
σ
约数之和

试除法:先试 p=2,再试奇数,p²>m 时停止;剩余的 m>1 即为质数。n<2 时不做分解。

嵌入此计算器

复制 iframe 代码即可把本计算器放到你的网站上,无需注册。代码会同步当前输入。

常见问题

质因数分解计算器 — 分解质因数并统计约数 使用什么公式?

公式: n = Π p_i^a_i; τ(n) = Π(a_i + 1); σ(n) = Π Σ_{j=0}^{a_i} p_i^j 逐步除法: n ÷ p; 乘法验证: p₁ × p₂ × … = n. 正约数: d > 0, n mod d = 0.

如何分解质因数并验证结果?

输入2至10¹²之间的整数,例如360 = 2³ × 3² × 5。查看逐步除法,再将质因数相乘验证原数。正约数列表不仅包含质数,也包含合数。