📅  最后修改于: 2023-12-03 15:10:22.952000             🧑  作者: Mango
对于一个整数 $n$,我们将其分解为若干质因数的乘积形式,即 $n=p_1^{k_1} \times p_2^{k_2} \times \cdots \times p_m^{k_m}$,其中 $p_1,p_2,\cdots,p_m$ 均为质数,$k_1,k_2,\cdots,k_m$ 均为正整数。
定义一个正整数 $d$ 为 $n$ 的数量因子,当且仅当 $d$ 能够写成 $d=p_1^{l_1} \times p_2^{l_2} \times \cdots \times p_m^{l_m}$ 的形式,其中 $0 \leq l_i \leq k_i$ 对于所有 $i \in [1,m]$ 均成立。
而数量因子乘积则指的是 $n$ 的所有数量因子的乘积,即 $\displaystyle \prod_{d|n} d$。
数量因子乘积常常出现在数论问题中,例如计算约数和、求因子个数、最大因子和等等问题中。
例如,给定一个正整数 $n$,求其所有因子的和,可以通过以下代码实现:
def divisor_sum(n):
res = 1
for i in range(2, int(n**0.5)+1):
if n % i == 0:
cnt = 0
while n % i == 0:
cnt += 1
n //= i
res *= (i**(cnt+1)-1)//(i-1)
if n > 1:
res *= (n**2-1)//(n-1)
return res
其中,在计算所有因子的时候,我们利用了数量因子乘积的性质:
$$\sum_{d|n} d = \prod_{i=1}^m \sum_{j=0}^{k_i} p_i^j = \prod_{i=1}^m \frac{p_i^{k_i+1}-1}{p_i-1}$$
数量因子乘积具有以下性质:
数量因子乘积是分解质因数后的一个重要参数,可以用于解决许多数论问题,同时具有一些非常有用的性质。