📜  数量因子乘积(1)

📅  最后修改于: 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}$$

性质

数量因子乘积具有以下性质:

  • 若 $n,m$ 互质,则 $\displaystyle \prod_{d|nm} d = \prod_{d|n} d \times \prod_{d|m}d$;
  • $\displaystyle \prod_{d|n} d = n^{|\tau(n)|/2}$,其中 $\tau(n)$ 表示 $n$ 的因子个数;
  • 当且仅当 $n$ 是完全平方数时,$\displaystyle \prod_{d|n} d$ 是平方数。
总结

数量因子乘积是分解质因数后的一个重要参数,可以用于解决许多数论问题,同时具有一些非常有用的性质。