欧拉函数

“下一个就是你了,承太郎“

定义

指的是满足小于等于$N$且与$N$互质的数目和。

用 $\varphi(N)$ 来表示。

欧拉公式求解

对于一个正整数$N$满足:

$\varphi(x)=\sum_{k}[(k, n)=1][k \in N][k<n]$

则有

$\varphi(n)=n\left(1-\frac{1}{p_{1}}\right)\left(1-\frac{1}{p_{2}}\right)\left(1-\frac{1}{p_{3}}\right) \cdots\left(1-\frac{1}{p_{k}}\right)$

有 $N=\prod p_i^{c_i}$ ,则有 $\varphi(N)=N\times\prod \frac{p_i+1}{p_i}$ 。

欧拉函数的性质:

当 $N=0$ 时

$\varphi(0)=0$.

当 $N=1$ 时

$\varphi(1)=1$.因为1与自身互质。

当 $N$ 为质数时

$\varphi(N)=N-1$.

如果 $ P$ 是质数,而 $N$ 是 $P$ 的正整数次方

$\varphi(P^N)=P^N(1-\frac{1}{p})$

欧拉定理

设$a,m \in N^+$,且$(a,m)=1$,那么则有

$a^{\varphi(m)} \equiv 1 \pmod m$

且$a$对模$m$的阶$\delta_m(a)$必须整除$\varphi(a)$.

证明:

取模$m$的缩系,$a_1,a_2,a_3……a_{\varphi(m)}$,

则$aa_1,aa_2,aa_3……aa_{\varphi(m)}$也是$m$的缩系.

故有$\prod_{i=1}^{\varphi(m)}a_i \equiv \prod_{i=1}^{\varphi(m)}aa_i \equiv a^{\varphi(m)}\prod_{i=1}^{\varphi(m)}a_i \pmod m$

则可以推出$a^{\varphi(m)} \equiv 1 \pmod m$.

证毕

欧拉定理可以推出费马小定理

如果p是一个质数,而整数$a$不是$p$的倍数,

则有$a^{(p-1)} \equiv 1 \pmod p$。

例题

CF1114F

CF1114F Please, another Queries on Array?

线段树维护欧拉函数区间修改。

用一棵线段树维护区间积,因为有 $a_i,x\le 300$ ,所以可以选择开六十余棵线段树来维护质因数的出现情况,但这样必死无疑。所以选择压位,可以用 std::bitset 或者 long long 来状态压缩。