一些公式

设一个整数A=p1e1A= p_1^{e_1}* p2e2p_2^{e_2}* p3e3p_3^{e_3}* \ldots* pnenp_n^{e_n}

则有:

A的约数的个数

A=(1+e1)(1+e2)(1+e3)(1+en) A=(1+\mathrm{e}_1)*(1+\mathrm{e}_2)*(1+\mathrm{e}_3)*\ldots*(1+\mathrm{e}_{\mathrm{n}})

A的约数的总和

A=(1+p1+p12+p13++p1e1)×(1+p2+p22+p23++p2e2)××(1+pn+pn2+pn3++pen) \begin{aligned} A =& \quad (1+\mathrm{p}_1+\mathrm{p}_1^2+\mathrm{p}_1^3+\ldots+\mathrm{p}_1^{\mathrm{e}_1}) \\ &\times (1+\mathrm{p}_2+\mathrm{p}_2^2+\mathrm{p}_2^3+\ldots+\mathrm{p}_2^{\mathrm{e}_2}) \\ &\times \ldots \\ & \times (1+\mathrm{p}_n+ \mathrm{p} _\mathrm{n} ^2+ \mathrm{p} _\mathrm{n} ^3+ \ldots + \mathrm{p}^{\mathrm{e}_n}) \end{aligned}

举例说明白:

180=22325180=2^2*3^2*5

个数=(1+2)(1+2)(1+1)=18=(1+2)*(1+2)*(1+1)=18

总和=(1+2+4)(1+3+9)(1+5)=546=(1+2+4)*(1+3+9)*(1+5)=546

约数

简单来说,约数和公式是由 “每个质因数的不同次幂之和”相乘 得到的。

下面我通过三个步骤来带你推导这个公式:

第一步:回顾质因数分解与约数的构成

假设一个整数 进行了质因数分解:

我们知道, 的任意一个约数 ,都可以写成如下形式:

其中,指数 的取值范围是 。


第二步:利用乘法分配律(核心步骤)

为了把所有的约数加起来,我们可以构造这样一个算式:

请注意,这里的每一个括号里,都是某个质因数从0次幂(也就是1)一直加到它的最高次幂

为什么要这样乘?

让我们回忆一下代数里的多项式乘法(分配律)。当你把这些括号展开相乘时,你会从每一个括号里各取一项相乘,得到一个新的项。

比如,如果有两个质因数 ,公式就是:

当你展开它时,你会得到类似这样的项:

  • (这是最小的约数 1)
  • (这是最大的约数 A本身)

结论: 展开后的每一项,刚好对应了 的每一个约数。 而且,由于每个括号里的选项覆盖了所有可能的指数情况,展开后的结果不多不少,刚好包含了所有的约数各一次

所以,这几个括号相乘的结果,就是所有约数的和。


第三步:举个简单的例子验证

为了直观理解,我们不用图中的180,用一个更小的数字:12

1. 手动列举约数求和: 12的约数有:1, 2, 3, 4, 6, 12。 和 = 。

2. 使用公式求和: 根据公式,我们把 的部分和 的部分分别列出来相乘:

  • 的部分(最高2次幂):
  • 的部分(最高1次幂):

两部分相乘:

结果完全一致!

总结

  • 约数个数公式是在做选择题:对于质因数 ,我有 到 共 种选法,乘起来就是总组合数。
  • 约数和公式是在做填空题并求和:把每个质因数所有可能的取值加起来,然后利用乘法分配律,一次性算出了所有组合(约数)的总和。

图中的公式:

正是基于这个原理得到的。