数论

同余

\(m|(a-b)\)
\(a\equiv b\pmod m\)
即除以\(m\)的余数相同。
\(114514\equiv1919810\pmod 2\)

逆元

\(ax\equiv b\pmod m\),那么\(x\)就是\(a\)在对\(b\)取模意义下的逆元,即\(a\mod b\)的逆元,记作\(a^{-1}\)

欧拉函数

小于等于\(n\)的与\(n\)互质的数的个数,就是欧拉函数,记作 \(\varphi(n)\)
\(\varphi(11)=10,\varphi(4)=3,\varphi(5)=4\)
\(n\)为质数时,有\(\varphi(n)=n-1\)
欧拉函数是积性函数,若\(\gcd(a,b)\),有\(\varphi(a\cdot b)=\varphi(a)\cdot \varphi(b)\),当\(n\)为奇数时,有\(\varphi(n)=\varphi(2n)\)
对于任意的\(n\)\(n\)的正因数的欧拉函数之和等于\(n\)
即$$n=\sum_{d|n}\varphi(d)$$ 。
设 $ n=p_1^{a1} \cdot p_2^{a2} \cdot p_3^{a3} \ldots p_m^{am}$ 为正整数\(n\)的质幂因数分解,有$$\varphi(n)=n*\prod_{i=1}^m(1-\frac{1}{p_i})$$特别地,若\(n\)为质数,则不能满足该公式;还有,若\(n=p^k\)\(p\)是质数,有\(\varphi(n)=p^{k-1}\cdot \varphi(p)\)
用这个求单个欧拉函数复杂度是\(O(\sqrt n)\)

欧拉定理

\(\gcd(a,m)=1\),有\(a^{\varphi(m)}\equiv 1\pmod m\)

费马小定理

\(p\) 为素数,且 \(\gcd(a,p)=1\)\(a^{p-1} \equiv1\pmod p\)
另一种形式,对于任意整数\(a\),有\(a^{p} \equiv p\pmod p\)

扩展欧拉定理

\[a^b = \begin{cases} a^{b \mod \varphi(m)}, & \gcd(a,m)=1 \\ a^b, & \gcd(a,m)\neq 1,b<\varphi(m),\pmod m \\ a^{(b \mod \varphi(m))+\varphi(m)},& \gcd(a,m)\neq 1,b\ge\varphi(m) \\ \end{cases}\]

欧拉筛求欧拉函数

线性筛出\(1\)\(n\)的最小质因数,递推求出所有欧拉函数,复杂度\(O(n)\)

void Get_Phi() {
  f[1] = 1;
  for (int i = 2; i <= n; i++) {
    if (!f[i]) prime[++c] = i, phi[i] = i - 1;
    for (int j = 1; j <= c; j++) {
      if (prime[j] * i > n) break;
      f[prime[j] * i] = 1;
      phi[prime[j] * i] = phi[i] * (i % prime[j] ? prime[j] - 1 : prime[j]);
      if (i % prime[j] == 0) break;
    }
  }
}
posted @ 2023-10-08 08:28  xyh0528  阅读(25)  评论(0)    收藏  举报