通过MCP连接 →

输入计算

请输入一个整数,以计算它的因数和质因数。

数学公式

广告

结果

30 has 8 factors

  1. 因数:
    1, 2, 3, 5, 6, 10, 15, 30
  2. 质因数:
    30 = 2 × 3 × 5

因数计算器能做什么

这款因数计算器只需输入一个整数,就能立刻给出两项结果:该数字的全部因数(约数),以及它的质因数分解。所谓因数,是指能够整除该数字、且没有余数的整数;质因数则是相乘后还原出原数字的那些质数"基石"。无论是做作业、约分分数、求最大公约数,还是探索数字的各种性质,它都是一个得力的小工具。

数字 12 拆分为约数对,排列成由点组成的矩形
12 的因数以相乘等于该数的约数对的形式呈现。

如何使用

这里只有一个输入框,标注为 "求以下数字的因数:"。输入任意整数(正数或负数)即可,剩下的交给计算器。它按绝对值进行计算,因此返回的因数始终为正数。支持的范围是任何小于 2,147,483,647 的整数——达到或超过这个上限的数字将不会被处理。

  • 0 作为特殊情况处理,结果返回 0。
  • 负数会取其绝对值(例如 -12 与 12 得到完全相同的因数)。

背后的计算原理

计算器并不会逐一检查从 1 到输入值之间的每个数字,而是只从 1 循环到该数字的平方根。对于每个能整除的数值 i,它会同时记录 i 和与之配对的商(数字 ÷ i)。这种"平方根法"成对地找出因数,对较大的数字而言速度要快得多。结果会自动去重,并按从小到大排序。至于质因数分解,则采用成熟的质数算法(Apache Commons Math)将绝对值拆解为各个质因数。

能整除关系可写作:

$$\text{Factors} = \left\{\, d \in \mathbb{Z}^{+} : \text{Number} \bmod d = 0 \,\right\}$$

对于负数,则按绝对值计算:

$$\text{Factors} = \left\{\, d \in \mathbb{Z}^{+} : \left|\text{Number}\right| \bmod d = 0 \,\right\}$$
Advertisement
余数为零的除法,标示 d 为因数
当一个数除以正整数 d 余数为 0 时,d 就是它的因数。

实例演示

输入 36。循环从 1 跑到 7(刚好越过 \(\sqrt{36} = 6\)):

  • 1 能整除 36 → 记录 1 和 36
  • 2 能整除 36 → 记录 2 和 18
  • 3 能整除 36 → 记录 3 和 12
  • 4 能整除 36 → 记录 4 和 9
  • 6 能整除 36 → 记录 6(它的配对也是 6,因此只记一次)

排序后,因数为:1、2、3、4、6、9、12、18、36。质因数为:2、2、3、3(因为 \(2 \times 2 \times 3 \times 3 = 36\))。

常见问题

因数和质因数有什么区别? 因数是所有能整除输入数字的数;质因数则只包含相乘后能构成它的那些质数。以 36 为例,因数中包含 12、18 这样的合数,而质因数只有 2、2、3、3。

为什么负数会得到正的因数? 计算器按绝对值进行运算,所以 -12 和 12 得到的是同一组正约数。

有数值大小限制吗? 有。数字必须小于 2,147,483,647(也要大于它的负数)。达到或超过该上限的数值将不返回任何结果。

最后更新: