杜教筛
数论函数
数论函数(也称算术函数)指定义域为正整数的函数.数论函数也可以视作一个数列.
积性函数
在数论中,若函数 \(f(n)\) 满足 \(f(1)=1\),且 \(f(xy)=f(x)f(y)\) 对任意互质的 \(x, y \in\mathbf{N}^*\) 都成立,则 \(f(n)\) 为 积性函数.
在数论中,若函数 \(f(n)\) 满足 \(f(1)=1\) 且 \(f(xy)=f(x)f(y)\) 对任意的 \(x, y \in\mathbf{N}^*\) 都成立,则 \(f(n)\) 为 完全积性函数.
对正整数 \(x\),设其唯一质因数分解为 \(x=\prod p_i^{k_i}\),其中 \(p_i\) 为质数.
若 \(F(x)\) 为积性函数,则有 \(F(x)=\prod F(p_i^{k_i})\).
若 \(F(x)\) 为完全积性函数,则有 \(F(x)=\prod F(p_i^{k_i})=\prod F(p_i)^{k_i}\).
加性函数
在数论中,若函数 \(f(n)\) 满足 \(f(1)=0\) 且 \(f(xy)=f(x)+f(y)\) 对任意互质的 \(x, y \in\mathbf{N}^*\) 都成立,则 \(f(n)\) 为 加性函数.
在数论中,若函数 \(f(n)\) 满足 \(f(1)=0\) 且 \(f(xy)=f(x)+f(y)\) 对任意的 \(x, y \in\mathbf{N}^*\) 都成立,则 \(f(n)\) 为 完全加性函数.
对正整数 \(x\),设其唯一质因数分解为 \(x=\prod p_i^{k_i}\),其中 \(p_i\) 为质数.
若 \(F(x)\) 为加性函数,则有 \(F(x)=\sum F(p_i^{k_i})\).
若 \(F(x)\) 为完全加性函数,则有 \(F(x)=\sum F(p_i^{k_i})=\sum F(p_i)\cdot k_i\).
常见数论函数
- 单位函数:\(\varepsilon(n)=[n=1]\).
- 恒等函数:\(\operatorname{id}_k(n)=n^k\),\(\operatorname{id}_{1}(n)\) 通常简记作 \(\operatorname{id}(n)\).
- 常数函数:\(1(n)=1\).
- 除数函数:\(\sigma_{k}(n)=\sum_{d\mid n}d^{k}\).\(\sigma_{0}(n)\) 通常简记作 \(d(n)\) 或 \(\tau(n)\),\(\sigma_{1}(n)\) 通常简记作 \(\sigma(n)\).
- 欧拉函数:\(\varphi(n)=\sum_{i=1}^n[\gcd(i,n)=1]\).
- 莫比乌斯函数:\(\mu(n)=\begin{cases}1&n=1\\0&\exists d>1,d^{2}\mid n\\(-1)^{\omega(n)}&\text{otherwise}\end{cases}\),其中 \(\omega(n)\) 表示 \(n\) 的本质不同质因子个数.
上述数论函数均为积性函数;特别地,\(\varepsilon,id_k,1\) 均为完全积性函数.
数论函数的 Dirichlet 卷积
常见数论函数有如下关系:
- \(\varepsilon\circ f=f\)
- \(1\circ 1=d\)
- \(id\circ 1=\sigma\)
- \(\mu\circ 1=\varepsilon\)
- \(\varphi\circ 1=id\)
证明:
1,2,3 就是定义,4 参见 莫比乌斯反演,现证明 5:
由 \(\varphi\) 的定义,有 \(\varphi(n)=\sum_{i=1}^n[\gcd(i,n)=1]\).
化简:
即:
对其做一遍莫比乌斯反演:
杜教筛
杜教筛被用于处理一类数论函数的前缀和问题.对于数论函数 \(f\),杜教筛可以在低于线性时间的复杂度内计算 \(S(n)=\sum_{i=1}^{n}f(i)\).
算法内容
\[g(1)S(n)=\sum_{i=1}^n(f\circ g)(i)-\sum_{i=2}^ng(i)S(\left \lfloor \frac{n}{i} \right \rfloor ) \]通过构造 \(g\) 与 \(f\circ g\) 从而快速计算 \(S\).
证明:
引理 1:
因此有:
时间复杂度
例题
杜教筛
求:
对于 \(\sum \varphi(i)\) 可以构造 \(\varphi \circ 1=id\).
对于 \(\sum\mu(i)\) 可以构造 \(\mu\circ 1=\varepsilon\).
神犇和韶身
求:
\(A\) 是诈骗的,有 \(A=1\).
对于 \(B\),有 \(\varphi(i^2)=\varphi(i)\times i\),那么:
即 \((\varphi\times id)\circ id=id_2\).
DZY Loves Math IV
求 \(\sum_{i=1}^n\sum_{j=1}^m\varphi(ij)\) 模 \(10^9+7\) 的值.
有 \(1\le n\le 10^5,1\le m\le 10^9\).
对于这道题,需要先知道一些关于 \(\varphi\) 的神秘式子:
设 \(P_x\) 为 \(x\) 的质因子集,若 \(P_x\subseteq P_y\),则 \(\varphi(xy)=x\times\varphi(y)\).
\(\gcd(i,j)=\sum_{d|\gcd(i,j)}\varphi(d)\).
\(\varphi(ij)=\varphi(\frac{i}{\gcd(i,j)})\varphi(j)\gcd(i,j)\).
若 \(a\) 无平方因子,有 \(\varphi(\frac{a}{b})\times \varphi(\frac{b}{c})=\varphi(\frac{a}{c})\)
上面的式子不难用 \(\varphi\) 的公式证明.
回归本题,注意到 \(n,m\) 不同阶,因而是要枚举 \(n\),统计答案.
设 \(S(n,m)=\sum_{i=1}^m\varphi(ni)\),设 \(n=\prod p_i^{\alpha_i},p=\prod p_i^{\alpha_i-1},q=\prod p_i\),则有 \(pq=n\).
那么:
以此计算,时间复杂度的分析与杜教筛的分析是相同的.
边界条件为:\(n=1\) 时,调用 \(\sum_{i=1}^n\varphi(i)\);\(m=0\) 时,返回 \(0\).

浙公网安备 33010602011771号