Summary 数论函数中结构最好的一类:输入互素时函数值可乘,取值完全由素数幂处决定。梳理欧拉函数、因子个数与因子和、莫比乌斯函数等常见积性函数及公式,给出莫比乌斯函数的核心恒等式与狄利克雷卷积的运算律。经典卷积关系把这些函数串成一体,导出因子求和 sum phi(d)=n 一类恒等式与莫比乌斯反演,并用反演重推欧拉函数公式。线性筛按最小素因子分支在线性时间求出整段函数值。末尾谈完全数与梅森素数、欧几里得–欧拉定理及奇完全数之谜。
积性函数 (Multiplicative Function)是数论函数里最重要的一大类。它的核心特征是:把整数的乘法结构和函数值挂上钩 ——只要两个输入互素,函数值就可以相乘。
这一条性质看似简单,威力却很大。借助 算术基本定理 ,任何整数都是素数幂的乘积;而积性函数在互素的块上可乘,于是它在任意整数处的值,都能从「素数幂处的值」拼出来。这意味着研究一个积性函数,只需要搞清楚它在 p k p^k p k 上长什么样,整体就全清楚了。它让大量带 ∑ d ∣ n \sum_{d\mid n} ∑ d ∣ n 的求和与反演问题瞬间简化。
定义在 正整数集 上的函数 f : Z + → C f:\mathbb{Z}^+\to\mathbb{C} f : Z + → C 统称 数论函数 (Arithmetic Function,算术函数)。它的输入是正整数,输出可以是任意(通常是整数或复数)。本节研究的都是其中结构特别好的那些。
数论函数 f f f (且 f f f 不恒为 0 0 0 )称为 积性函数 ,若对所有互素的 a , b a,b a , b 都有:
gcd ( a , b ) = 1 ⟹ f ( a b ) = f ( a ) f ( b ) \gcd(a,b)=1\implies f(ab)=f(a)f(b) g cd( a , b ) = 1 ⟹ f ( ab ) = f ( a ) f ( b )
若把条件放宽到对 所有 a , b a,b a , b (不要求互素)都成立,则称 完全积性函数 (Completely Multiplicative)。任何积性函数都满足 f ( 1 ) = 1 f(1)=1 f ( 1 ) = 1 (取 a = b = 1 a=b=1 a = b = 1 即得)。
把唯一分解代入定义,积性函数 f f f 的值由它在 各素数幂处的值 完全决定:
n = p 1 a 1 ⋯ p k a k ⟹ f ( n ) = ∏ i = 1 k f ( p i a i ) n=p_1^{a_1}\cdots p_k^{a_k}\implies f(n)=\prod_{i=1}^kf(p_i^{a_i}) n = p 1 a 1 ⋯ p k a k ⟹ f ( n ) = i = 1 ∏ k f ( p i a i )
这就是上面说的「只需搞清 p k p^k p k 」。对完全积性函数还更简单:f ( p k ) = f ( p ) k f(p^k)=f(p)^k f ( p k ) = f ( p ) k ,连素数幂都不用单独算,知道 f f f 在素数上的值就够了。
函数 定义 完全积性 欧拉函数 φ ( n ) \varphi(n) φ ( n ) 与 n n n 互素且 ≤ n \le n ≤ n 的正整数个数 ✗ 因子个数 d ( n ) d(n) d ( n ) 或 τ ( n ) \tau(n) τ ( n ) n n n 的正因子个数✗ 因子和 σ ( n ) \sigma(n) σ ( n ) n n n 的所有正因子之和✗ 莫比乌斯函数 μ ( n ) \mu(n) μ ( n ) 见下文 ✗ 恒等函数 id ( n ) \operatorname{id}(n) id ( n ) id ( n ) = n \operatorname{id}(n)=n id ( n ) = n ✓ 单位函数 ε ( n ) \varepsilon(n) ε ( n ) ε ( 1 ) = 1 \varepsilon(1)=1 ε ( 1 ) = 1 ,否则 0 0 0 ✓ 常值函数 1 ( n ) \mathbf{1}(n) 1 ( n ) 恒等于 1 1 1 ✓
后三个看似平凡的函数(id \operatorname{id} id 、ε \varepsilon ε 、1 \mathbf{1} 1 )不是凑数的——它们是下面狄利克雷卷积里的「基本元件」。ε \varepsilon ε 是卷积的单位元(相当于乘法里的 1 1 1 ),1 \mathbf{1} 1 负责「对所有因子求和」,id \operatorname{id} id 负责把因子本身取出来。许多经典恒等式都是这几个零件的卷积。
欧拉函数 φ ( n ) \varphi(n) φ ( n ) 数的是 { 1 , … , n } \set{1,\dots,n} { 1 , … , n } 中与 n n n 互素的个数。由唯一分解和积性可得:
φ ( n ) = ∏ i = 1 k ( p i a i − p i a i − 1 ) = n ∏ p ∣ n ( 1 − 1 p ) \varphi(n)=\prod_{i=1}^k\left(p_i^{a_i}-p_i^{a_i-1}\right)=n\prod_{p\mid n}\left(1-\frac{1}{p}\right) φ ( n ) = i = 1 ∏ k ( p i a i − p i a i − 1 ) = n p ∣ n ∏ ( 1 − p 1 )
它满足 φ ( p ) = p − 1 \varphi(p)=p-1 φ ( p ) = p − 1 、φ ( p k ) = p k − p k − 1 \varphi(p^k)=p^k-p^{k-1} φ ( p k ) = p k − p k − 1 ,是积性但 非 完全积性(例如 φ ( 4 ) = 2 ≠ φ ( 2 ) 2 = 1 \varphi(4)=2\ne\varphi(2)^2=1 φ ( 4 ) = 2 = φ ( 2 ) 2 = 1 )。
例:算 φ ( 360 ) \varphi(360) φ ( 360 ) 。分解 360 = 2 3 ⋅ 3 2 ⋅ 5 360=2^3\cdot 3^2\cdot 5 360 = 2 3 ⋅ 3 2 ⋅ 5 ,用乘积公式:
φ ( 360 ) = 360 ( 1 − 1 2 ) ( 1 − 1 3 ) ( 1 − 1 5 ) = 360 ⋅ 1 2 ⋅ 2 3 ⋅ 4 5 = 96 \varphi(360)=360\left(1-\frac{1}{2}\right)\left(1-\frac{1}{3}\right)\left(1-\frac{1}{5}\right)=360\cdot\frac{1}{2}\cdot\frac{2}{3}\cdot\frac{4}{5}=96 φ ( 360 ) = 360 ( 1 − 2 1 ) ( 1 − 3 1 ) ( 1 − 5 1 ) = 360 ⋅ 2 1 ⋅ 3 2 ⋅ 5 4 = 96
也可逐素数幂相乘:φ ( 2 3 ) φ ( 3 2 ) φ ( 5 ) = ( 8 − 4 ) ( 9 − 3 ) ( 5 − 1 ) = 4 × 6 × 4 = 96 \varphi(2^3)\varphi(3^2)\varphi(5)=(8-4)(9-3)(5-1)=4\times 6\times 4=96 φ ( 2 3 ) φ ( 3 2 ) φ ( 5 ) = ( 8 − 4 ) ( 9 − 3 ) ( 5 − 1 ) = 4 × 6 × 4 = 96 ,两法一致。所以 1 ∼ 360 1\sim 360 1 ∼ 360 中与 360 360 360 互素的数有 96 96 96 个。
设 n = p 1 a 1 ⋯ p k a k n=p_1^{a_1}\cdots p_k^{a_k} n = p 1 a 1 ⋯ p k a k 。因子个数 d ( n ) d(n) d ( n ) 与 因子和 σ ( n ) \sigma(n) σ ( n ) 都能直接从分解读出:
d ( n ) = ∏ i = 1 k ( a i + 1 ) d(n)=\prod_{i=1}^k(a_i+1) d ( n ) = i = 1 ∏ k ( a i + 1 )
σ ( n ) = ∏ i = 1 k p i a i + 1 − 1 p i − 1 \sigma(n)=\prod_{i=1}^k\frac{p_i^{a_i+1}-1}{p_i-1} σ ( n ) = i = 1 ∏ k p i − 1 p i a i + 1 − 1
d ( n ) d(n) d ( n ) 的来历:n n n 的每个因子,在素数 p i p_i p i 上的指数可以是 0 , 1 , … , a i 0,1,\dots,a_i 0 , 1 , … , a i 共 a i + 1 a_i+1 a i + 1 种选择,各素数独立,乘起来即得。σ ( n ) \sigma(n) σ ( n ) 同理,把每个 p i p_i p i 上的等比和 1 + p i + ⋯ + p i a i 1+p_i+\dots+p_i^{a_i} 1 + p i + ⋯ + p i a i 乘起来。
例:算 n = 72 = 2 3 ⋅ 3 2 n=72=2^3\cdot 3^2 n = 72 = 2 3 ⋅ 3 2 的 d d d 与 σ \sigma σ 。
d ( 72 ) = ( 3 + 1 ) ( 2 + 1 ) = 12 , σ ( 72 ) = ( 1 + 2 + 4 + 8 ) ( 1 + 3 + 9 ) = 15 × 13 = 195 d(72)=(3+1)(2+1)=12,\sigma(72)=(1+2+4+8)(1+3+9)=15\times 13=195 d ( 72 ) = ( 3 + 1 ) ( 2 + 1 ) = 12 , σ ( 72 ) = ( 1 + 2 + 4 + 8 ) ( 1 + 3 + 9 ) = 15 × 13 = 195
可把 72 72 72 的 12 12 12 个因子全列出来核对:1 , 2 , 3 , 4 , 6 , 8 , 9 , 12 , 18 , 24 , 36 , 72 1,2,3,4,6,8,9,12,18,24,36,72 1 , 2 , 3 , 4 , 6 , 8 , 9 , 12 , 18 , 24 , 36 , 72 ,正好 12 12 12 个,相加得 195 195 195 。手工列因子时按「每个素数取一档指数」的笛卡儿积来枚举(2 2 2 的指数 × \times × 3 3 3 的指数),不易漏。
莫比乌斯函数 (Möbius Function)μ ( n ) \mu(n) μ ( n ) 定义为:
μ ( n ) = { 1 , n = 1 ( − 1 ) k , n = p 1 p 2 ⋯ p k ( 素因子互不相同 ) 0 , n 含平方因子 \mu(n)=\begin{cases}
1, & n=1 \\
(-1)^k, & n=p_1p_2\cdots p_k(\text{素因子互不相同}) \\
0, & n\text{ 含平方因子}
\end{cases} μ ( n ) = ⎩ ⎨ ⎧ 1 , ( − 1 ) k , 0 , n = 1 n = p 1 p 2 ⋯ p k ( 素因子互不相同 ) n 含平方因子
它把整数分三类:1 1 1 、无平方因子数(按素因子个数定正负号)、有平方因子数(直接归零)。例如 μ ( 1 ) = 1 , μ ( 2 ) = − 1 , μ ( 4 ) = 0 , μ ( 6 ) = 1 , μ ( 30 ) = − 1 \mu(1)=1,\mu(2)=-1,\mu(4)=0,\mu(6)=1,\mu(30)=-1 μ ( 1 ) = 1 , μ ( 2 ) = − 1 , μ ( 4 ) = 0 , μ ( 6 ) = 1 , μ ( 30 ) = − 1 。μ \mu μ 是积性函数。
∑ d ∣ n μ ( d ) = ε ( n ) = { 1 , n = 1 0 , n > 1 \sum_{d\mid n}\mu(d)=\varepsilon(n)=\begin{cases}
1, & n=1 \\
0, & n>1
\end{cases} d ∣ n ∑ μ ( d ) = ε ( n ) = { 1 , 0 , n = 1 n > 1
这条恒等式是整个莫比乌斯反演的心脏。它本质上是一个容斥:对 n > 1 n>1 n > 1 ,把 n n n 的无平方因子的因子按素因子个数分类,正负正好抵消(二项式系数交错和为 0 0 0 )。它说的是「1 ∗ μ = ε \mathbf{1}*\mu=\varepsilon 1 ∗ μ = ε 」,即 μ \mu μ 是 1 \mathbf{1} 1 在卷积下的逆。
例:在 n = 30 = 2 ⋅ 3 ⋅ 5 n=30=2\cdot 3\cdot 5 n = 30 = 2 ⋅ 3 ⋅ 5 上验证。30 30 30 的因子按素因子个数分层:1 1 1 (0 0 0 个,μ = 1 \mu=1 μ = 1 );2 , 3 , 5 2,3,5 2 , 3 , 5 (1 1 1 个,μ = − 1 \mu=-1 μ = − 1 );6 , 10 , 15 6,10,15 6 , 10 , 15 (2 2 2 个,μ = 1 \mu=1 μ = 1 );30 30 30 (3 3 3 个,μ = − 1 \mu=-1 μ = − 1 ):
∑ d ∣ 30 μ ( d ) = 1 ⏟ 1 − 3 ⏟ 2 , 3 , 5 + 3 ⏟ 6 , 10 , 15 − 1 ⏟ 30 = 0 \sum_{d\mid 30}\mu(d)=\underbrace{1}_1-\underbrace{3}_{2,3,5}+\underbrace{3}_{6,10,15}-\underbrace{1}_{30}=0 d ∣ 30 ∑ μ ( d ) = 1 1 − 2 , 3 , 5 3 + 6 , 10 , 15 3 − 30 1 = 0
这串 1 − 3 + 3 − 1 1-3+3-1 1 − 3 + 3 − 1 正是 ( 1 − 1 ) 3 (1-1)^3 ( 1 − 1 ) 3 的二项展开——k k k 个不同素因子时和为 ( 1 − 1 ) k = 0 (1-1)^k=0 ( 1 − 1 ) k = 0 ,所以 n > 1 n>1 n > 1 时必为 0 0 0 。
两个数论函数 f , g f,g f , g 的 狄利克雷卷积 (Dirichlet Convolution)定义为:
( f ∗ g ) ( n ) = ∑ d ∣ n f ( d ) g ( n d ) (f*g)(n)=\sum_{d\mid n}f(d)g\left(\frac{n}{d}\right) ( f ∗ g ) ( n ) = d ∣ n ∑ f ( d ) g ( d n )
即对 n n n 的每一种「因子配对」d ⋅ n d = n d\cdot\frac{n}{d}=n d ⋅ d n = n 求和。它把「数论函数」从一盘散沙变成一个 有乘法的代数系统 :
例:直接按定义算 ( 1 ∗ id ) ( 12 ) (\mathbf{1}*\operatorname{id})(12) ( 1 ∗ id ) ( 12 ) ,体会卷积是「遍历因子配对求和」。12 12 12 的因子为 1 , 2 , 3 , 4 , 6 , 12 1,2,3,4,6,12 1 , 2 , 3 , 4 , 6 , 12 ,每项取 1 ( d ) ⋅ id ( 12 / d ) = 1 ⋅ 12 d \mathbf{1}(d)\cdot\operatorname{id}(12/d)=1\cdot\frac{12}{d} 1 ( d ) ⋅ id ( 12/ d ) = 1 ⋅ d 12 :
( 1 ∗ id ) ( 12 ) = ∑ d ∣ 12 12 d = 12 + 6 + 4 + 3 + 2 + 1 = 28 = σ ( 12 ) (\mathbf{1}*\operatorname{id})(12)=\sum_{d\mid 12}\frac{12}{d}=12+6+4+3+2+1=28=\sigma(12) ( 1 ∗ id ) ( 12 ) = d ∣ 12 ∑ d 12 = 12 + 6 + 4 + 3 + 2 + 1 = 28 = σ ( 12 )
正是 12 12 12 的因子和,印证下面 1 ∗ id = σ \mathbf{1}*\operatorname{id}=\sigma 1 ∗ id = σ 。同样地 ( 1 ∗ 1 ) ( 12 ) = ∑ d ∣ 12 1 = 6 = d ( 12 ) (\mathbf{1}*\mathbf{1})(12)=\sum_{d\mid 12}1=6=d(12) ( 1 ∗ 1 ) ( 12 ) = ∑ d ∣ 12 1 = 6 = d ( 12 ) (12 12 12 有 6 6 6 个因子),印证 1 ∗ 1 = d \mathbf{1}*\mathbf{1}=d 1 ∗ 1 = d 。
交换律、结合律 都成立;
单位元 是 ε \varepsilon ε ,即 f ∗ ε = f f*\varepsilon=f f ∗ ε = f ;
保积性 :两个积性函数的卷积仍是积性函数。
正因为有了结合律和单位元,「求某个函数的逆」「在等式两边同卷一个函数」这类操作才合法——莫比乌斯反演就是这么来的。
下面几条等式把上面所有函数串了起来,值得记熟:
1 ∗ μ = ε \mathbf{1}*\mu=\varepsilon 1 ∗ μ = ε
1 ∗ id = σ ( 因子求和 ) \mathbf{1}*\operatorname{id}=\sigma(\text{因子求和}) 1 ∗ id = σ ( 因子求和 )
1 ∗ 1 = d ( 因子计数 ) \mathbf{1}*\mathbf{1}=d(\text{因子计数}) 1 ∗ 1 = d ( 因子计数 )
φ ∗ 1 = id ( i.e. ∑ d ∣ n φ ( d ) = n ) \varphi*\mathbf{1}=\operatorname{id}\Bigl(\text{i.e. }\sum_{d\mid n}\varphi(d)=n\Bigr) φ ∗ 1 = id ( i.e. d ∣ n ∑ φ ( d ) = n )
最后一条尤其漂亮,下面单独说。
∑ d ∣ n φ ( d ) = n \sum_{d\mid n}\varphi(d)=n d ∣ n ∑ φ ( d ) = n
直觉上,把 { 1 , 2 , … , n } \set{1,2,\dots,n} { 1 , 2 , … , n } 每个数 k n \frac{k}{n} n k 约分成最简分数,分母一定是 n n n 的某个因子 d d d ;分母恰为 d d d 的最简分数有 φ ( d ) \varphi(d) φ ( d ) 个。按分母分类求和,总数仍是 n n n ,于是各 φ ( d ) \varphi(d) φ ( d ) 加起来等于 n n n 。
例:在 n = 12 n=12 n = 12 上验证。12 12 12 的因子 1 , 2 , 3 , 4 , 6 , 12 1,2,3,4,6,12 1 , 2 , 3 , 4 , 6 , 12 ,对应:
∑ d ∣ 12 φ ( d ) = φ ( 1 ) + φ ( 2 ) + φ ( 3 ) + φ ( 4 ) + φ ( 6 ) + φ ( 12 ) = 1 + 1 + 2 + 2 + 2 + 4 = 12 \sum_{d\mid 12}\varphi(d)=\varphi(1)+\varphi(2)+\varphi(3)+\varphi(4)+\varphi(6)+\varphi(12)=1+1+2+2+2+4=12 d ∣ 12 ∑ φ ( d ) = φ ( 1 ) + φ ( 2 ) + φ ( 3 ) + φ ( 4 ) + φ ( 6 ) + φ ( 12 ) = 1 + 1 + 2 + 2 + 2 + 4 = 12
正好等于 n = 12 n=12 n = 12 。换个角度看分母分类:把 1 12 , 2 12 , … , 12 12 \frac{1}{12},\frac{2}{12},\dots,\frac{12}{12} 12 1 , 12 2 , … , 12 12 全约分,分母为 12 12 12 的最简分数(即分子与 12 12 12 互素)有 φ ( 12 ) = 4 \varphi(12)=4 φ ( 12 ) = 4 个,分母为 6 6 6 的有 φ ( 6 ) = 2 \varphi(6)=2 φ ( 6 ) = 2 个……各档加起来仍是 12 12 12 个分数。
另一条常用的是因子和与莫比乌斯的互逆形式(莫比乌斯反演的特例):
∑ d ∣ n μ ( d ) σ ( n d ) = id ( n ) = n \sum_{d\mid n}\mu(d)\sigma\left(\frac{n}{d}\right)=\operatorname{id}(n)=n d ∣ n ∑ μ ( d ) σ ( d n ) = id ( n ) = n
莫比乌斯反演 (Möbius Inversion):设 F ( n ) = ∑ d ∣ n f ( d ) F(n)=\sum_{d\mid n}f(d) F ( n ) = ∑ d ∣ n f ( d ) ,则可以把 f f f 反解出来:
f ( n ) = ∑ d ∣ n μ ( d ) F ( n d ) f(n)=\sum_{d\mid n}\mu(d)F\left(\frac{n}{d}\right) f ( n ) = d ∣ n ∑ μ ( d ) F ( d n )
用卷积语言写极其干净:F = f ∗ 1 ⟹ f = F ∗ μ F=f*\mathbf{1}\implies f=F*\mu F = f ∗ 1 ⟹ f = F ∗ μ 。证明只需在两边同卷 μ \mu μ ,再用 1 ∗ μ = ε \mathbf{1}*\mu=\varepsilon 1 ∗ μ = ε 化简。
莫比乌斯反演的本质是「在整除偏序的格上做容斥」。如果你知道的是「所有因子的累加 F F F 」,却想倒推出「单点的原值 f f f 」,μ \mu μ 就是那把把累加「拆回去」的钥匙——正号、负号、归零,正对应容斥里的加、减、不计。它在计数互素对、求 gcd \gcd g cd 相关求和、欧拉函数求和等问题里出现得极频繁。
由 φ ∗ 1 = id \varphi*\mathbf{1}=\operatorname{id} φ ∗ 1 = id 两边同卷 μ \mu μ ,得 φ = id ∗ μ \varphi=\operatorname{id}*\mu φ = id ∗ μ ,即:
φ ( n ) = ∑ d ∣ n μ ( d ) n d = n ∑ d ∣ n μ ( d ) d \varphi(n)=\sum_{d\mid n}\mu(d)\frac{n}{d}=n\sum_{d\mid n}\frac{\mu(d)}{d} φ ( n ) = d ∣ n ∑ μ ( d ) d n = n d ∣ n ∑ d μ ( d )
把右边对每个素因子展开(含平方因子的项被 μ \mu μ 清零),正好得到 n ∏ p ∣ n ( 1 − 1 p ) n\prod_{p\mid n}\bigl(1-\frac{1}{p}\bigr) n ∏ p ∣ n ( 1 − p 1 ) ,与前面的乘积公式吻合。这是「反演能重新推出已知结果」的典型例子。
例:在 n = 12 n=12 n = 12 上把 φ = id ∗ μ \varphi=\operatorname{id}*\mu φ = id ∗ μ 算一遍,看含平方因子项如何被清零。12 12 12 的因子里 μ \mu μ 非零的只有无平方因子的 1 , 2 , 3 , 6 1,2,3,6 1 , 2 , 3 , 6 (4 , 12 4,12 4 , 12 含 2 2 2^2 2 2 ,μ = 0 \mu=0 μ = 0 ):
φ ( 12 ) = ∑ d ∣ 12 μ ( d ) 12 d = μ ( 1 ) ⋅ 12 + μ ( 2 ) ⋅ 6 + μ ( 3 ) ⋅ 4 + μ ( 6 ) ⋅ 2 = 12 − 6 − 4 + 2 = 4 \varphi(12)=\sum_{d\mid 12}\mu(d)\frac{12}{d}=\mu(1)\cdot 12+\mu(2)\cdot 6+\mu(3)\cdot 4+\mu(6)\cdot 2=12-6-4+2=4 φ ( 12 ) = d ∣ 12 ∑ μ ( d ) d 12 = μ ( 1 ) ⋅ 12 + μ ( 2 ) ⋅ 6 + μ ( 3 ) ⋅ 4 + μ ( 6 ) ⋅ 2 = 12 − 6 − 4 + 2 = 4
(μ ( 1 ) = 1 , μ ( 2 ) = μ ( 3 ) = − 1 , μ ( 6 ) = 1 \mu(1)=1,\mu(2)=\mu(3)=-1,\mu(6)=1 μ ( 1 ) = 1 , μ ( 2 ) = μ ( 3 ) = − 1 , μ ( 6 ) = 1 。)结果 φ ( 12 ) = 4 \varphi(12)=4 φ ( 12 ) = 4 与直接公式一致,而 d = 4 , 12 d=4,12 d = 4 , 12 那两项因 μ = 0 \mu=0 μ = 0 自动消失。
例(反解未知函数):已知 g ( n ) = ∑ d ∣ n f ( d ) g(n)=\sum_{d\mid n}f(d) g ( n ) = ∑ d ∣ n f ( d ) ,且测得 g ( 1 ) = 1 , g ( 2 ) = 3 , g ( 3 ) = 4 , g ( 6 ) = 12 g(1)=1,g(2)=3,g(3)=4,g(6)=12 g ( 1 ) = 1 , g ( 2 ) = 3 , g ( 3 ) = 4 , g ( 6 ) = 12 ,反求 f ( 6 ) f(6) f ( 6 ) 。直接套 f ( n ) = ∑ d ∣ n μ ( d ) g ( n / d ) f(n)=\sum_{d\mid n}\mu(d)g(n/d) f ( n ) = ∑ d ∣ n μ ( d ) g ( n / d ) :
f ( 6 ) = μ ( 1 ) g ( 6 ) + μ ( 2 ) g ( 3 ) + μ ( 3 ) g ( 2 ) + μ ( 6 ) g ( 1 ) = 12 − 4 − 3 + 1 = 6 f(6)=\mu(1)g(6)+\mu(2)g(3)+\mu(3)g(2)+\mu(6)g(1)=12-4-3+1=6 f ( 6 ) = μ ( 1 ) g ( 6 ) + μ ( 2 ) g ( 3 ) + μ ( 3 ) g ( 2 ) + μ ( 6 ) g ( 1 ) = 12 − 4 − 3 + 1 = 6
这正是「已知所有因子处的累加值、倒推单点原值」的标准反演操作——符号 + , − , − , + +,-,-,+ + , − , − , + 恰是容斥的加减。
利用 线性筛 (欧拉筛)可在 O ( N ) O(N) O ( N ) 时间内求出一个积性函数 f f f 在 1 ∼ N 1\sim N 1 ∼ N 的全部取值。关键是筛法保证每个合数只被它的 最小素因子 p p p 划掉一次,于是分两种情况递推:
对每个素数 p p p ,按 f ( p ) f(p) f ( p ) 的已知公式直接赋值。
对合数 n n n (设最小素因子为 p p p ):
若 p ∤ ( n / p ) p\nmid(n/p) p ∤ ( n / p ) ,即 n / p n/p n / p 与 p p p 互素:用积性 f ( n ) = f ( p ) ⋅ f ( n / p ) f(n)=f(p)\cdot f(n/p) f ( n ) = f ( p ) ⋅ f ( n / p ) 。
否则 p 2 ∣ n p^2\mid n p 2 ∣ n :用 f f f 在 p k p^k p k 上的递推式(如 φ ( p k ) = p ⋅ φ ( p k − 1 ) \varphi(p^k)=p\cdot\varphi(p^{k-1}) φ ( p k ) = p ⋅ φ ( p k − 1 ) )。
这一技巧在算法竞赛的数论题里几乎是标配,常与莫比乌斯反演配合,把整除求和问题压到线性甚至更优。
例:跟着线性筛求 φ ( 1 ) ∼ φ ( 12 ) \varphi(1)\sim\varphi(12) φ ( 1 ) ∼ φ ( 12 ) ,看三种赋值分支如何触发。φ ( 1 ) = 1 \varphi(1)=1 φ ( 1 ) = 1 。逐个处理:
φ ( 2 ) = 1 , φ ( 3 ) = 2 , φ ( 5 ) = 4 , φ ( 7 ) = 6 , φ ( 11 ) = 10 \varphi(2)=1,\varphi(3)=2,\varphi(5)=4,\varphi(7)=6,\varphi(11)=10 φ ( 2 ) = 1 , φ ( 3 ) = 2 , φ ( 5 ) = 4 , φ ( 7 ) = 6 , φ ( 11 ) = 10 :素数,φ ( p ) = p − 1 \varphi(p)=p-1 φ ( p ) = p − 1 。
φ ( 4 ) \varphi(4) φ ( 4 ) :4 = 2 × 2 4=2\times 2 4 = 2 × 2 ,最小素因子 p = 2 p=2 p = 2 且 p ∣ ( 4 / 2 ) = 2 p\mid(4/2)=2 p ∣ ( 4/2 ) = 2 ,落到 p 2 ∣ n p^2\mid n p 2 ∣ n 分支,φ ( 4 ) = p ⋅ φ ( 2 ) = 2 × 1 = 2 \varphi(4)=p\cdot\varphi(2)=2\times 1=2 φ ( 4 ) = p ⋅ φ ( 2 ) = 2 × 1 = 2 。
φ ( 6 ) \varphi(6) φ ( 6 ) :6 = 2 × 3 6=2\times 3 6 = 2 × 3 ,p = 2 p=2 p = 2 但 p ∤ ( 6 / 2 ) = 3 p\nmid(6/2)=3 p ∤ ( 6/2 ) = 3 (互素),用积性 φ ( 6 ) = φ ( 2 ) φ ( 3 ) = 1 × 2 = 2 \varphi(6)=\varphi(2)\varphi(3)=1\times 2=2 φ ( 6 ) = φ ( 2 ) φ ( 3 ) = 1 × 2 = 2 。
φ ( 8 ) \varphi(8) φ ( 8 ) :8 = 2 × 4 8=2\times 4 8 = 2 × 4 ,p = 2 ∣ 4 p=2\mid 4 p = 2 ∣ 4 ,φ ( 8 ) = 2 × φ ( 4 ) = 2 × 2 = 4 \varphi(8)=2\times\varphi(4)=2\times 2=4 φ ( 8 ) = 2 × φ ( 4 ) = 2 × 2 = 4 。
φ ( 9 ) \varphi(9) φ ( 9 ) :9 = 3 × 3 9=3\times 3 9 = 3 × 3 ,p = 3 ∣ 3 p=3\mid 3 p = 3 ∣ 3 ,φ ( 9 ) = 3 × φ ( 3 ) = 3 × 2 = 6 \varphi(9)=3\times\varphi(3)=3\times 2=6 φ ( 9 ) = 3 × φ ( 3 ) = 3 × 2 = 6 。
φ ( 10 ) \varphi(10) φ ( 10 ) :10 = 2 × 5 10=2\times 5 10 = 2 × 5 ,p = 2 ∤ 5 p=2\nmid 5 p = 2 ∤ 5 ,φ ( 10 ) = φ ( 2 ) φ ( 5 ) = 1 × 4 = 4 \varphi(10)=\varphi(2)\varphi(5)=1\times 4=4 φ ( 10 ) = φ ( 2 ) φ ( 5 ) = 1 × 4 = 4 。
φ ( 12 ) \varphi(12) φ ( 12 ) :12 = 2 × 6 12=2\times 6 12 = 2 × 6 ,p = 2 ∣ 6 p=2\mid 6 p = 2 ∣ 6 ,φ ( 12 ) = 2 × φ ( 6 ) = 2 × 2 = 4 \varphi(12)=2\times\varphi(6)=2\times 2=4 φ ( 12 ) = 2 × φ ( 6 ) = 2 × 2 = 4 。
关键在于「p ∣ ( n / p ) p\mid(n/p) p ∣ ( n / p ) 与否」决定走 素数幂递推 还是 积性拆分 ——前者乘的是 p p p ,后者乘的是 φ ( p ) = p − 1 \varphi(p)=p-1 φ ( p ) = p − 1 。差一个 1 1 1 ,必须分清。
因子和 σ \sigma σ 引出一个古老话题。若一个正整数恰好等于它 所有真因子之和 ,即 σ ( n ) = 2 n \sigma(n)=2n σ ( n ) = 2 n ,称为 完全数 (Perfect Number)。最小的几个是 6 = 1 + 2 + 3 6=1+2+3 6 = 1 + 2 + 3 、28 = 1 + 2 + 4 + 7 + 14 28=1+2+4+7+14 28 = 1 + 2 + 4 + 7 + 14 。
偶完全数有一条优美刻画(欧几里得—欧拉定理):n n n 是偶完全数当且仅当:
n = 2 p − 1 ( 2 p − 1 ) , 其中 2 p − 1 是素数 n=2^{p-1}\bigl(2^p-1\bigr),\text{其中 }2^p-1\text{ 是素数} n = 2 p − 1 ( 2 p − 1 ) , 其中 2 p − 1 是素数
形如 2 p − 1 2^p-1 2 p − 1 的素数称为 梅森素数 (Mersenne Prime),p p p 本身必为素数。于是「找偶完全数」与「找梅森素数」是同一个问题。梅森素数极其稀少,目前已知的只有几十个,最大素数纪录长期由它保持。至于 是否存在奇完全数 ,至今仍是未解之谜。
例:用欧几里得—欧拉公式造出前几个完全数。逐个试素数 p p p ,看 2 p − 1 2^p-1 2 p − 1 是否为素数:
p p p 2 p − 1 2^p-1 2 p − 1 是否素数 完全数 2 p − 1 ( 2 p − 1 ) 2^{p-1}(2^p-1) 2 p − 1 ( 2 p − 1 ) 2 2 2 3 3 3 ✓ 2 × 3 = 6 2\times 3=6 2 × 3 = 6 3 3 3 7 7 7 ✓ 4 × 7 = 28 4\times 7=28 4 × 7 = 28 5 5 5 31 31 31 ✓ 16 × 31 = 496 16\times 31=496 16 × 31 = 496 7 7 7 127 127 127 ✓ 64 × 127 = 8128 64\times 127=8128 64 × 127 = 8128 11 11 11 2047 = 23 × 89 2047=23\times 89 2047 = 23 × 89 ✗(非素数) —
注意 p = 11 p=11 p = 11 虽是素数,2 11 − 1 = 2047 2^{11}-1=2047 2 11 − 1 = 2047 却是合数,故不产生完全数——「p p p 素」是必要而非充分条件。验算 σ ( 28 ) \sigma(28) σ ( 28 ) :28 = 2 2 ⋅ 7 28=2^2\cdot 7 28 = 2 2 ⋅ 7 ,σ ( 28 ) = ( 1 + 2 + 4 ) ( 1 + 7 ) = 7 × 8 = 56 = 2 × 28 \sigma(28)=(1+2+4)(1+7)=7\times 8=56=2\times 28 σ ( 28 ) = ( 1 + 2 + 4 ) ( 1 + 7 ) = 7 × 8 = 56 = 2 × 28 ,确为完全数。