数论题目

· · 个人记录

欧拉函数

n 的质因数分解为 \prod\limits_{i=1}^{k}p_i^{k_i}

计算式:\varphi(n)=n\prod\limits_{i=1}^{k}\frac{p_i-1}{p_i}

性质:n=\sum\limits_{d|n}{\varphi(d)}

推论:\gcd(x,y)=\sum\limits_{d}[d|x][d|y]\varphi(d)

例题:P2350

Wilson 定理

## exgcd 已解出 $ax+by=\gcd(b,a\bmod b)$ 的一组特解 $x_1,y_1$。 要解出 $ax+by=\gcd(a,b)$ 的一组特解 $x_2,y_2$。 可令 $x_2=y_1,y_2=x_1-\lfloor\frac{a}{b}\rfloor y_1$。 C++ `a/b` 默认向 $0$ 取整,所以 $a,b$ 中有负数时可能出错。可以手写下取整函数避免此问题。 ```cpp ll floor(ll a, ll b) { assert(b); if (b < 0) { a = -a; b = -b; } return (a > 0 ? a : a - b + 1) / b; } ``` 例题:[LOJ2160](https://loj.ac/p/2160) ## CRT ![](https://cdn.luogu.com.cn/upload/image_hosting/xfwp8usk.png) 类似拉格朗日插值。 ## EXCRT 合并两个同余方程 $x\equiv a_1\pmod{m_1}$ 和 $x\equiv a_2\pmod{m_2}$。 令 $x=a_1+pm_1=a_2+qm_2$。 则 $pm_1-qm_2=a_2-a_1$,用 $\text{exgcd}$ 求出 $p$ 的一个特解 $p^\prime$。 其通解为 $p=p^\prime+k\cdot\frac{m_2}{\gcd(m_1,m_2)}$。 则 $x$ 可以表示为 $a_1+(p^\prime+k\cdot\frac{m_2}{\gcd(m_1,m_2)})m_1$。 即 $x\equiv{a_1+p^\prime m_1}\pmod{\text{lcm}(m_1,m_2)}$。 例题:[P4774](https://www.luogu.com.cn/problem/P4774) ## Lucas 定理 当 $p$ 为质数时: $$\binom{n}{m}\equiv\binom{\lfloor\frac{n}{p}\rfloor}{\lfloor\frac{m}{p}\rfloor}\binom{n\bmod p}{m\bmod p}\pmod p$$ ## BSGS > 给定 $a,b,p$ 满足 $\gcd(a,p)=1$,求最小的非负整数 $n$,满足 $a^n\equiv b\pmod p$。 设置块长 $B=\lceil\sqrt p\rceil$。 令 $n=iB-j$,因为 $\gcd(a,p)=1$,所以如果 ${(a^B)}^i\equiv b\cdot a^j\pmod p$ 则 $a^{iB-j}\equiv b\pmod p$。 从小到大枚举 $j$ 将 $(b\cdot a_j\bmod p,j)$ 加入哈希表。 从小到大枚举 $i$,如果 ${(a^B)}^i$ 在哈希表中则结束。 ## Miller-Rabin ![](https://cdn.luogu.com.cn/upload/image_hosting/tvcxokyl.png) + 使用 $2,7,61$ 作为底数可对 $2^{32}$ 以内的数判素。 + 使用前 $12$ 个素数作为底数可对 $2^{78}$ 以内的素数判素。 例题:[ARC191C](https://www.luogu.com.cn/problem/AT_arc191_c) ## Dirichlet 卷积 对于两个数论函数 $f(n)$ 和 $g(n)$,它们的狄利克雷卷积得到的结果 $(f*g)(n)$ 定义为: $$(f*g)(n)=\sum_{d|n}{f(d)g\left(\frac{n}{d} \right)}=\sum_{a\cdot b=n}{f(a)g(b)}$$ 三个规律: + 交换律:$f*g=g*f

三个常用函数:

四个常用关系:

Dirichlet 前缀和

类似高维前缀和加完全背包。

例题:U540632

数论分块

左端点为 $l$ 的块右端点为 $\lfloor\frac{n}{\lfloor n/l\rfloor}\rfloor$。 例题:[P2260](https://www.luogu.com.cn/problem/P2260) ## 莫比乌斯函数 ![](https://cdn.luogu.com.cn/upload/image_hosting/0sfnflp6.png) 含有平方因子即存在一个质因数次数 $>1$。 性质: + $\sum\limits_{d|n}\mu(d)=[n=1]$。可以理解为给 $n$ 的每一个因子分配一个容斥系数,使得所有因子的容斥系数和为 $0$。 + $\sum\limits_{d|n}\mu(d)\frac{n}{d}=\varphi(n)$。 例题:[CF2039F1](https://www.luogu.com.cn/problem/CF2039F1) ### 莫比乌斯反演 主要利用 $\sum\limits_{d}[d|x][d|y]\mu(d)=[\gcd(x,y)=1]$。 例题:[P1829](https://www.luogu.com.cn/problem/P1829)