前言:
下面我会详细介绍欧拉函数和应用,例题有难有易,我也会尽量说的清楚。例题难度我大概给一个评级,在 1 1 1 到 7 7 7 之间。
除特别标注的地方外,其余均为原创!
码字不易,欢迎留赞!
介绍
欧拉函数: φ ( n ) \varphi(n) φ(n) 表示在 [ 1 , n ] [1, n] [1,n] 之间与 n n n 互质的数, x x x 与 n n n 互质指的是 gcd ( x , n ) = 1 \gcd(x,n)=1 gcd(x,n)=1。
欧拉定理: 若 gcd ( a , m ) = 1 \gcd(a,m) = 1 gcd(a,m)=1,则 a φ ( m ) ≡ 1 ( m o d m ) a^{\varphi(m)} \equiv 1(\mod m) aφ(m)≡1(modm)。
证明:
图片转载处:https://blog.youkuaiyun.com/weixin_43627118/article/details/103357469
求 φ ( n ) \varphi(n) φ(n)(容斥)
首先我们要解决如何快速求欧拉函数。暴力做法时间复杂度过大,大部分题目都无法容忍,那么该怎么办呢?我们来讲讲怎样用容斥求欧拉函数。
例题 1 1 1(模板,难度 3 3 3)
题意
给定 n n n,求 φ ( n ) \varphi(n) φ(n)。
n ≤ 1 0 12 n \leq 10^{12} n≤1012。
思路
转化一下题意:我们要求 x x x 的数量,满足 gcd ( x , n ) = 1 \gcd(x,n)=1 gcd(x,n)=1。(不懂见介绍)
n n n 过大,我们无法用暴力解决。
我们要求 x x x 的数量,满足 gcd ( x , n ) = 1 \gcd(x,n)=1 gcd(x,n)=1。
将 n n n 分解质因数后是 p 1 r 1 × p 2 r 2 × p 3 r 3 p1^{r1} \times p2^{r2} \times p3^{r3} p1r1×p2r2×p3r3, p 1 , p 2 , p 3 p1,p2,p3 p1,p2,p3 是不同的质数。可以发现, p 1 , p 2 , p 3 p1,p2,p3 p1,p2,p3 的倍数一定与 n n n 不互质,我们要把这些数减去:
n − n ÷ p 1 − n ÷ p 2 − n ÷ p 3 n-n \div p1-n\div p2-n\div p3 n−n÷p1−n÷p2−n÷p3
这个公式对了吗?不对!有数字被重复减去了!比如 p 1 × p 2 p1 \times p2 p1×p2, n ÷ p 1 n \div p1 n÷p1 减了一次, n ÷ p 2 n \div p2 n÷p2 也减了一次,一共减了两次,所以得加回来。同理, p 2 × p 3 p2 \times p3 p2×p3、 p 1 × p 3 p1 \times p3 p1×p3 也是如此。我们要把他们三个以及他们的倍数都加回来:
n − n ÷ p 1 − n ÷ p 2 − n ÷ p 3 + n ÷ ( p 1 × p 2 ) + n ÷ ( p 2 × p 3 ) + n ÷ ( p 1 × p 3 ) n-n \div p1-n\div p2-n\div p3+n\div (p1\times p2)+n\div (p2\times p3) +n\div (p1 \times p3) n−n÷p1−n÷p2−n÷p3+n÷(p1×p2)+n÷(p2×p3)+n÷(p1×p3)
呼,这个公式对了吧?还是不对!你可否发现 p 1 × p 2 × p 3 p1\times p2 \times p3 p1×p2×p3 这个数先是 − 3 -3 −3,然后又是 + 3 +3 +3,最后没减也没加!但是它肯定是不符合要求的,它的倍数也是如此,所以我们还要把它的倍数再全部减去:
n − n ÷ p 1 − n ÷ p 2 − n ÷ p 3 + n ÷ ( p 1 × p 2 ) + n ÷ ( p 2 × p 3 ) + n ÷ ( p 1 × p 3 ) − n ÷ ( p 1 × p 2 × p 3 ) n-n \div p1-n\div p2-n\div p3+n\div (p1\times p2)+n\div (p2\times p3) +n\div (p1 \times p3) - n \div (p1\times p2\times p3) n−n÷p1−n÷p2−n÷p3+n÷(p1×p2)+n÷(p2×p3)+n÷(p1×p3)−n÷(p1×p2×p3)
这个公式对了吗?对了,终于对了,没有再多加少加的东西了。
下面,我们需要化简这个式子:
n − n ÷ p 1 − n ÷ p 2 − n ÷ p 3 + n ÷