数论
同余
若 \(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\) 。
扩展欧拉定理
欧拉筛求欧拉函数
线性筛出\(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;
}
}
}

浙公网安备 33010602011771号