定义
φ ( n ) \varphi(n) φ(n)(读作fai)定义为[1, n]中与n互质的数的个数
显然,当 n n n 是素数时, φ ( n ) = n − 1 \varphi(n) = n-1 φ(n)=n−1
欧拉函数的求法
关于 φ ( n ) \varphi(n) φ(n) ,有几种不同的求法,视情况使用。
首先呢,我们需要知道一个性质。
两个数 a , b a, b a,b 互质时, φ ( a b ) = φ ( a ) ∗ φ ( b ) \varphi(ab)=\varphi(a)*\varphi(b) φ(ab)=φ(a)∗φ(b)
这是欧拉函数的积性性质,具体证明可以参考网上撒(因为我不会,我们对欧拉函数的求法,基本上都会基于此性质。
① 基于质因数分解的求法
考虑 p , q p,q p,q都是素数, n = p ∗ q n=p*q n=p∗q的情况。
由容斥原理:
φ ( n ) = n − n p − n q + n p q = n ( 1 − 1 p ) ( 1 − 1 q ) = ( p − 1 ) ∗ ( q − 1 ) = φ ( p ) ∗ φ ( q ) \varphi(n)=n - \dfrac{n}{p} - \dfrac{n}{q} + \dfrac{n}{pq} = n(1-\dfrac{1}{p})(1-\dfrac{1}{q}) = (p-1)*(q-1)=\varphi(p)*\varphi(q) φ(n)=n−pn−qn+pqn=n(1−p1)(1−q1)=(p−1)∗(q−1)=φ(p)∗φ(q)
拓展到多个素因子的情况 n = p 1 k 1 p 2 k 2 . . . . p m k m n = p_1^{k_1}p_2^{k_2}....p_m^{k_m} n=p1k1p2k2....pmkm
那么
φ ( n ) = ∏ i = 1 m φ ( p i ) = n ( 1 − 1 p 1 ) . . . ( 1 − 1 p m ) \varphi(n) = \prod \limits_{i=1}^{m}\varphi(p_i) \\ = n(1-\dfrac{1}{p_1})...(1-\dfrac{1}{p_m}) φ(n)=i=1∏mφ(pi)=n(1−