一. 质数

概念

  • φ(n)\varphi(n)1n1\sim n 中与 nn 互质的数的个数。

  • 如果当 a,ba, b 互质时,有 f(a×b)=f(a)×(b)f(a\times b)=f(a)\times (b)。那么称函数 ff 为积性函数。若 ff 是积性函数,且在算术基本定理中 n=i=1mpicin=\prod_{i=1}^{m}p_{i}^{c_{i}},则显然 f(n)=i=1mf(pici)f(n)=\prod_{i=1}^{m}f\left(p_{i}^{c_{i}}\right)

性质

  • 1n1\sim n 中质数的个数: nlnn\dfrac{n}{\ln n}

  • 欧拉函数

    1. n>1,1n\forall n>1,1 \sim n 中与 nn 互质的数的和为 n2×φ(n)\dfrac{n}{2}\times\varphi(n)

      证明:因为 gcd(n,x)=gcd(n,nx)\gcd(n,x)=gcd(n,n-x),所以 1n1\sim n 中与 nn 互质的数总是成对出现,平均值为 n2\dfrac{n}{2},总和为 n2×φ(n)\dfrac{n}{2}\times\varphi(n)

    2. a,ba, b 互质, 则 φ(a×b)=φ(a)×φ(b)\varphi(a\times b)=\varphi(a)\times\varphi(b)

      证明:根据下文欧拉函数单点计算公式直接得出。

    3. pp 为质数,若 pnp \mid np2np^{2} \mid n,则 φ(n)=φ(np)×p\varphi(n)=\varphi(\dfrac{n}{p})\times p.

      证明:由条件得 nnnp\dfrac{n}{p} 质因子种类相同,只是指数不同,将 φ(n)\varphi(n)φ(np)\varphi(\dfrac{n}{p}) 根据下文单点计算公式拆分发现他们的商为 pp

    4. pp 为质数,若 pnp \mid np2np^{2} \nmid n,则 φ(n)=φ(np)×(p1)\varphi(n)=\varphi(\dfrac{n}{p})\times(p-1)

      证明:由条件得 ppnp\dfrac{n}{p} 互质,由性质 2 可得 φ(n)=φ(np)×φ(p)=φ(np)×(p1)\varphi(n)=\varphi(\dfrac{n}{p})\times\varphi(p)=\varphi(\dfrac{n}{p})\times(p-1)

    5. dnφ(d)=n\sum_{d\mid n}\varphi(d)=n

      证明:设 n,mn,m 互质,n=p1c1p2c2n=p_1^{c_1}p_2^{c_2}\cdotsm=p1 c1p2 c2m=p_1'^{~c_1'}p_2'^{~c_2'}\cdots

      dnmφ(d)=i=0c1j=0c2k=0c1l=0c2φ(p1ip2jp1 kp2 l)=i=0c1j=0c2φ(p1ip2j)k=0c1l=0c2φ(p1 kp2 l)=fnφ(f)gmφ(g)\begin{gather} \sum_{d\mid nm}\varphi(d)=\sum\limits_{i=0}^{c_1}\sum\limits_{j=0}^{c_2}\cdots\sum\limits_{k=0}^{c_1'}\sum\limits_{l=0}^{c_2'}\cdots\varphi(p_1^ip_2^j\cdots p_1'^{~k}p_2'^{~l}\cdots)\\ =\sum\limits_{i=0}^{c_1}\sum\limits_{j=0}^{c_2}\cdots\varphi(p_1^ip_2^j\cdots)\sum\limits_{k=0}^{c_1'}\sum\limits_{l=0}^{c_2'}\cdots\varphi(p_1'^{~k}p_2'^{~l}\cdots)\\ =\sum_{f\mid n}\varphi(f)\sum_{g\mid m}\varphi(g)\\ \end{gather}

      所以 dnφ(d)\sum_{d\mid n}\varphi(d) 是积性函数。

      nn 的质因子种类共 kk 种。

      dnφ(d)=i=1ikfpiciφ(f)=i=1ikj=0jciφ(pij)由等比数列求和公式可得j=0jciφ(pij)=pici=i=1ikpici=n\begin{gather} \sum_{d\mid n}\varphi(d)=\prod_{i=1}^{i\le k}\sum_{f\mid p_i^{c_i}}\varphi(f)\\ =\prod_{i=1}^{i\le k}\sum_{j=0}^{j\le c_i}\varphi(p_i^j)\\ \text{由等比数列求和公式可得}\sum_{j=0}^{j\le c_i}\varphi(p_i^j)=p_i^{c_i}\\ =\prod_{i=1}^{i\le k}p_i^{c_i}\\ =n\\ \end{gather}

公式

  • 单点计算公式:φ(n)=n×p11p1×p21p2××pm1pm=n×质数pn(11p)\varphi(n)=n \times \dfrac{p_{1}-1}{p_{1}} \times \dfrac{p_{2}-1}{p_{2}} \times \cdots \times \dfrac{p_{m}-1}{p_{m}}=n \times \prod_{\text{质数} p \mid n}\left(1-\dfrac{1}{p}\right)

    感性理解:对于 nn 的每个质因子 pp 来说,1n1\sim n 中有这个质因子的数在所有数中的比例为 1p\dfrac{1}{p},这部分肯定无法与 nn 互质,剩下 p1p\dfrac{p-1}{p} 可能与 nn 互质,这是考虑一个质因子的情况。考虑所有质因子的情况就是 质数pn(11p)\prod_{\text{质数}p\mid n}\left(1-\dfrac{1}{p}\right),再乘上 1n1\sim n 中整数个数。

  • 递推式:φ(p×i)=φ(i)×{p(pi)p1(pi)\varphi(p\times i)=\varphi(i)\times\begin{cases}p&(p\mid i)\\p-1&(p\nmid i)\end{cases}

    由性质 3、4 可得。

代码

  • 单点质数筛

    • 试除法
  • 区间质数筛

    • 埃氏筛

    • 线性筛

  • 自由区间质数筛

    • 双筛法(筛小素数再筛区间素数)
  • 单点质因数分解

    • 试除法
  • 单点欧拉函数——质因数分解(求值公式)

  • 区间欧拉函数——线性法(积性性质)

  • 自由区间欧拉函数——双筛法(求值公式)

二. 约数

性质

  • nn 的约数个数上界2n2\sqrt{n}

    试除法的推论。

  • 1n1\sim n 每个数约数个数的总和: nlognn\log n

    倍数法的推论:

    估算每个数的约数和比较难,可以反过来考虑每个数的贡献,即每个数会作为多少个数(1n1\sim n 内)的约数。

    1n1\sim n 的贡献分别是 n1,n2,n3nn\dfrac{n}{1},\dfrac{n}{2},\dfrac{n}{3}\cdots\dfrac{n}{n},可发现个数约是 nlognn\log n

  • 02×1090\sim 2\times 10^9 中约数个数最多的数的约数个数是 16001600

公式

  • 正约数个数:(c1+1)×(c2+1)××(cm+1)=i=1m(ci+1)\left(c_{1}+1\right) \times\left(c_{2}+1\right) \times \cdots \times\left(c_{m}+1\right)=\prod_{i=1}^{m}\left(c_{i}+1\right)

  • 正约数和:(1+p1+p12++p1c1)××(1+pm+pm2++pmcm)=i=1m(j=0ci(pi)j)\left(1+p_{1}+p_{1}^{2}+\cdots+p_{1}^{c_{1}}\right) \times\cdots \times\left(1+p_{m}+p_{m}^{2}+\cdots+p_{m}^{c_{m}}\right)=\prod_{i=1}^{m}\left(\sum_{j=0}^{c_{i}}\left(p_{i}\right)^{j}\right)

    证明:使用组合数证明即可。

代码

  • gcd lcmgcd~lcm

  • 单点约数筛

    • 试除法
  • 区间约数筛

    • 倍数法(埃氏)

三. 余数

概念

  • 对于 a[0,m1]\forall a \in[0, m-1],合 {a+km}(kZ)\{a+k m\}(k \in \mathbb{Z}) 的所有数模 mm 同余,余数都是 a0a_{0} 该集合称为一个模 mm同余类,简记为 aˉ\bar{a}

  • mm 的同余类一共有 mm 个,分别为 0,1,2,,m1\overline{0}, \overline{1}, \overline{2}, \cdots, \overline{m-1} 。它们构成 mm完全剩余系

  • 1m1 \sim m 中与 mm 互质的数代表的同余类共有 φ(m)\varphi(m) 个,它们构成 mm简化剩余系。 例如, 模 10 的简化剩余系为 {1,3,7,9}\{\overline{1}, \overline{3}, \overline{7}, \overline{9}\}

    乘法封闭:集合中的任意两个元素进行乘法运算,得到的结果还在这个集合中。

    简化剩余系的性质:mm 的简化剩余系关于 mm 乘法封闭。

    证明:设 mm 的简化剩余系中两数为 a,ba,b,则 a×ba\times b 也与 mm 互质,根据余数的性质, a×bmodma\times b\bmod m 也与 mm 互质。

  • 若整数 b,mb, m 互质,并且 bab \mid a,则存在一个整数 xx,使得 a/ba×x(modm)a / b \equiv a \times x(\bmod m) 。称 xxbb 的模 mm 乘法逆元,记为 b1(modm)b^{-1}(\bmod m)。因为 a/ba×b1a/b×b×b1(modm)a / b \equiv a \times b^{-1} \equiv a / b \times b \times b^{-1}(\bmod m),所以 b×b11(modm)b \times b^{-1} \equiv 1(\bmod m)

定理 / 公式

  • 欧拉定理:若正整数 x,nx, n 互质,则 xφ(n)1(modn)x^{\varphi(n)} \equiv 1(\bmod n),其中 φ(n)\varphi(n) 为欧拉函数。

    证明:设集合 SSnn 的简化剩余系,记作 {a1,a2aφ(n)}\{\overline{a}_1,\overline{a}_2\cdots\overline{a}_{\varphi(n)}\}TTnn 的简化剩余系中所有数乘上 xx 构成的集合,记作 {x×a1,x×a2x×aφ(n)}\{\overline{x\times a}_1,\overline{x\times a}_2\cdots \overline{x\times a}_{\varphi(n)}\}

    1. 证明所有 TT 中元素都在 SS 中:

      因为 x,nx,n 互质,所以 gcd(x,n)=1\gcd(x,n)=1,所以 gcd(xmodn,n)=1\gcd(x\bmod n, n)=1。又因为简化剩余系具有乘法封闭的性质,所以 x×aiSx\times a_i\in S

    2. 证明所有 TT 中元素在模意义下不重复:

      反证法。若 aia_iaja_jSS 中两个不同元素,且 x×aix×aj(modn)x\times a_i\equiv x\times a_j(\bmod n),则 x×(aiaj)0(modn)x\times(a_i-a_j)\equiv0(\bmod n)。又因为 x≢0(modn)x\not\equiv 0(\bmod n),所以 aiaj0(modn)a_i-a_j\equiv 0(\bmod n)aiaj(modn)a_i\equiv a_j(\bmod n)。矛盾。

    3. 证明 S=TS=T

      因为 1 和 2,又因为 SSTT 中元素数量相等,所以 S=TS=T

    4. 证明定理:

      xφ(n)a1a2aφ(n)(xa1)(xa2)(xaφ(n))a1a2aφ(n)(modn)aφ(n)1(modn)\begin{gather} \because x^{\varphi(n)}a_1a_2\cdots a_{\varphi(n)}\equiv (xa_1)(xa_2)\cdots(xa_{\varphi(n)})\equiv a_1a_2\cdots a_{\varphi(n)}(\bmod n)\\ \therefore a^{\varphi(n)}\equiv 1(\bmod n)\\ \end{gather}

  • 费马小定理:若 pp 是质数,则对于任意整数 aa,有 apa(modp)a^{p} \equiv a(\bmod p)

    欧拉定理中 nn 为质数,两边同乘 aa 的情况。

  • 欧拉定理推论1:若正整数 a,na, n 互质,则对于任意正整数 bb,有 ababmodφ(n)(modn)a^{b} \equiv a^{b \bmod \varphi(n)}(\bmod n)

    证明:设 b=k×φ(n)+rb=k\times \varphi(n)+r

    abab(modn),aφ(n)1(modn)ab×(11)kab×((aφ(n))1)k(modn)ababmodφ(n)(modn)\begin{gather} \because a^b\equiv a^b(\bmod n),a^{\varphi(n)}\equiv 1(\bmod n)\\ \therefore a^b\times (1^{-1})^k\equiv a^b\times ((a^{\varphi(n)})^{-1})^k(\bmod n)\\ a^b\equiv a^{b \bmod \varphi(n)}(\bmod n)\\ \end{gather}

  • 欧拉定理推论2:当 a,na, n 不一定互质且 b>φ(n)b>\varphi(n) 时, 有 ababmodφ(n)+φ(n)(modn)a^{b} \equiv a^{b \bmod \varphi(n)+\varphi(n)}(\bmod n)

    证明:略。

  • 裴蜀定理:对于任意整数 a,ba, b,存在一对整数 x,yx, y,满足 ax+by=gcd(a,b)a x+b y=\operatorname{gcd}(a, b)

    证明:

    1. b=0b=0 时,有 {x=0y=1\begin{cases}x=0\\y=1\end{cases} 满足。

    2. b>0b>0 时。设 b×x+(amodb)×y=gcd(b,amodb)b\times x'+(a\bmod b)\times y'=\gcd(b,a\bmod b)

      b×x+(aab×b)×y=gcd(a,b)a×y+b×(xab×y)=gcd(a,b)b\times x'+(a-\left\lfloor \dfrac{a}{b}\right\rfloor\times b)\times y'=gcd(a,b)\\ a\times y'+b\times(x'-\left\lfloor\dfrac{a}{b}\right\rfloor\times y')=gcd(a,b)

      所以,有 {x=yy=xab×y\begin{cases}x=y'\\y=x'-\left\lfloor\dfrac{a}{b}\right\rfloor\times y'\end{cases} 满足。

  • 方程 ax+by=ca x+b y=c 的通解:x=cdx0+kbd,y=cdy0kad(kZ)x=\frac{c}{d} x_{0}+k \frac{b}{d},\quad y=\frac{c}{d} y_{0}-k \frac{a}{d}(k \in \mathbb{Z})

代码

  • exgcdexgcd

  • 求逆元

    • 单点——exgcdexgcd、费马小定理

    • 区间——线性求逆元

    • 任意 nn 数——前缀积

  • crtcrt