欧拉函数
欧拉函数
扩展欧拉定理
扩展欧拉定理一般用于不可解高次同余方程降次。如
线性筛
线性筛筛素数的思想同样能运用到筛欧拉函数,与此同时,也能用于筛约数个数、约数和等。
int euler() {
for (int i = 2; i <= n; ++i) {
if (!v[i])
v[i] = i, prime[++total] = i, phi[i] = i - 1;
for (int j = 1; j <= total && i * prime[j] <= n; ++j) {
if (prime[j] > v[i])
break;
v[i * prime[j]] = prime[j];
phi[i * prime[j]] = phi[i] * (i % prime[j] ? prime[j] - 1 : prime[j]);
}
}
}