数论函数与筛法

欧拉函数

\(\varphi(n)\) 表示 \([1,n]\) 中与 \(n\) 互质的数的个数。

  • 对于质数 \(p\)\(\varphi(p^k)=(p-1)\times p^{k-1}\)\(\le p^k\) 中不是 \(p\) 的倍数中的数都与 \(p^k\) 互质,所以结果就是 \(p^k-p^{k-1}=(p-1)\times p^k\)

  • \(\varphi(n)\) 是积性函数,于是对于 \(a\)\(b\) 互质,有 \(\varphi(ab)=\varphi(a)\varphi(b)\)

  • \(\varphi(n)=n\prod\dfrac{p_i-1}{p_i}\)

  • \(p\) 为质数,\(\varphi(p)=p-1\)

  • 对于 \(a|b\)\(\varphi(ab)=a\varphi(b)\)

  • \(\varphi(p)=\begin{cases}p\times\varphi(\dfrac{n}{p})& p^2|n \\(p-1)\times\varphi(\dfrac{n}{p})& p^2\nmid n \end{cases}\)
    其实就是将 \(n\) 拆分成 \(p\times \frac{n}{p}\),情况一就是 \(p\mid \dfrac{n}{p}\) 的情况,可以转化到定理五。情况二就是 \(p\nmid \frac{n}{p}\) 的情况,可以转化到

  • (欧拉反演) \(\sum\limits_{d|n}\varphi(d)=n\)
    证明:使 \(i<n,\gcd(n,i)=d\)\(i\) 的个数为 \(\varphi(\dfrac{n}{d})\),于是 \(n=\sum\limits_{d|n}\sum\limits_{i=1}^n[\gcd(n,i)=d]=\sum\limits_{d|n}\varphi(\dfrac{n}{d})\)

  • \(a|b\),则 \(\varphi(a)|\varphi(b)\)

  • \(n>2\)\(2|\varphi(p)\)

  • 对于所有 \(1\le x\le n\),使得 \(\gcd(n,x)=d\) 成立的 \(x\) 个数为 \(\varphi(\dfrac{n}{d})\)

欧拉定理

\(a^{\varphi(p)}\equiv 1 \pmod p\)

莫比乌斯反演

各类积性函数

莫比乌斯函数 \(\mu(n)=\begin{cases}0& \exists d>1 \\(-1)^{\omega(n)} &\operatorname{otherwise} \end{cases}\)
其中 \(\omega(n)\) 代表 \(n\) 的质因子个数。

狄利克雷卷积

\(h(x)=\sum\limits_{d|n}f(d)g(\dfrac{n}{d})\) 乘法卷积

莫比乌斯函数

\(\sum\limits_{d|n}\mu(\frac{n}{d})=\begin{cases}1&n=1 \\0 &n>1 \end{cases}\)
这就是 \(\mu * 1=\epsilon\)

\(\varphi(n)=\sum\limits_{d|n}d\times\mu({\dfrac{n}{d})}\)

变式:\(\dfrac{\varphi(n)}{n}=\sum\limits_{d|n}\dfrac{\mu(\frac{n}{d})}{d}\)

\(\sum\limits_{d|\gcd(i,j)}\mu(d)=[\gcd(i,j)=1]\)

\(\mu(np)=\mu(p)\times \mu(n)=-\mu(n)\)

反演公式

\(f(n)=\sum\limits_{d|n}g(d) \Rightarrow g(n)=\sum\limits_{d|n}\mu(d)\times f(\dfrac{n}{d})\)

鬼吹灯

U403635 鬼吹灯
\(n\) 为奇数时,注意 \(\gcd(n,i)=\gcd(n,n-i)\),因此 \(S=\sum_{i=0}^{n}(-1)^i\gcd(n,i)=\sum_{i=0}^{n}(-1)^{n-i}\gcd(n,n-i)=-S\),故 \(S=0\)

\[\begin{aligned} &\sum_{i=1}^{n}(-1)^i\gcd(n,i)+n\\ =&\sum_{d\mid n}d\sum_{j=1}^{n/d}(-1)^{jd}[\gcd(j,\frac{n}{d})=1]+n\\ \end{aligned} \]

求和中 \((-1)^{jd}\) 比较棘手,考虑分 \(d\)​ 奇偶讨论:

\[\begin{aligned} &\sum_{d\mid n,2\mid d}d\sum_{j=1}^{n/d}[\gcd(j,\frac{n}{d})=1]+\sum_{d \mid n,2 \nmid d}d\sum_{j=1}^{n/d}(-1)^j[\gcd(j,\frac{n}{d})=1]+n\\ =&\sum_{d\mid n,2\mid d}d\varphi(\frac{n}{d})\textcolor{blue}{-\sum_{d\mid n,2\nmid d}d\varphi(\frac{n}{d})}+n\\ =&\sum_{d|n}(-1)^dd\varphi(\frac{n}{d})+n \end{aligned} \]

蓝色部分是因为 \(n\) 是偶数,\(d\) 是奇数,因此 \(\frac{n}{d}\) 是偶数,\(j\)\(\frac{n}{d}\) 互质,因此 \(j\) 是奇数。

做法一:枚举 \(d\),暴力算 \(\varphi(n/d)\),时间复杂度为 \(T(n)=\sum_{d\mid n}\sqrt{d}=O(n^{0.5+\epsilon})\),可以通过。

证明:考虑设 \(n\) 的标准分解为 \(\prod_{i=1}^{k}p_i^{\alpha_i}\),记 \(q_i=\sqrt{p_i}\)

\[\begin{aligned} \sum_{d|n}\sqrt d&=\prod_{i=1}^{k}(1+q_i+\cdots+q_i^{\alpha_i})\\ &=\prod_{i=1}^{k}q_i(1+q_i^{-1}+\cdots+q_i^{-\alpha_i})\\ &=\sqrt{n}\prod_{i=1}^{k}(1+q_i^{-1}+\cdots+q_i^{-\alpha_i})\\ &<\sqrt{n}\prod_{i=1}^{k}\sum_{j=0}^{+\infty}q_i^{-j}\\ &=\sqrt{n}\prod_{i=1}^{k}\frac{1}{1-q_i^{-1}} \end{aligned} \]

即每个不同的质数 \(p_i\) 除了 \(\sqrt{n}\) 之外贡献为 \(\frac{1}{1-q_i^{-1}}=\frac{\sqrt{p_i}}{\sqrt{p_i}-1}\)。我们可以取某个 \(N\),把 \(\prod_{i=1}^{N-1}\frac{\sqrt{p_i}}{\sqrt{p_i}-1}\) 当作常数,而后面的质数都放缩成 \(p_N\),则时间复杂度为 \(O(n^{0.5}(\frac{\sqrt{p_N}}{\sqrt{p_N}-1})^{\log_{p_N}n})=O(n^{0.5+\log_{p_N}(\frac{\sqrt{p_N}}{\sqrt{p_N}-1})})\)\(\log_{p_N}(\frac{\sqrt{p_N}}{\sqrt{p_N}-1})\) 可以任意小,因此时间复杂度不超过 \(O(n^{0.5+\epsilon})\)

做法二:对 \(n\) 质因数分解,dfs 搜索每个质因数,同时算出其 \(\varphi\),时间复杂度 \(O(d(n))\)

做法三:考虑 \(A(n)=\sum_{d|n}(-1)^{d+1}d\varphi(\frac{n}{d})\),答案为 \(n-A(n)\)

\(f(d)=(-1)^{d+1}d\)\(f,\varphi\) 都是积性函数,且 \(A=f*\varphi\),因此 \(A\) 是积性函数,只要计算质数幂次的取值。

注意 \(A(p^k)=\sum_{i\le k}(-1)^{p^i+1}p^i\varphi(p^{k-i})\),利用等比数列求和可以 \(O(1)\) 计算。因此能做到和质因数分解相同的时间复杂度。

posted @ 2024-11-07 12:23  Mirasycle  阅读(11)  评论(0编辑  收藏  举报