欧拉函数
定义
φ ( n ) \varphi(n) φ(n) 表示小于等于 n n n 的正整数中与 n n n 互质的数的个数。
特别的, φ ( 1 ) = 1 \varphi(1)=1 φ(1)=1。
通式
将 n n n 质因数分解后,表示为: n = p 1 c 1 p 2 c 2 . . . p k c k n=p_1^{c_1}p_2^{c_2}...p_k^{c_k} n=p1c1p2c2...pkck
那么通式为:
φ
(
n
)
=
n
∏
i
=
1
k
(
1
−
1
p
i
)
\varphi(n)=n\prod\limits_{i=1}^k (1-\frac 1 {p_i})
φ(n)=ni=1∏k(1−pi1)
证明
性质1
性质这种东西记下来就行了,后面有证明
φ ( n m ) = φ ( n ) φ ( m ) ( gcd ( n , m ) = 1 ) \varphi(nm)=\varphi(n)\varphi(m)~~(\gcd(n,m)=1) φ(nm)=φ(n)φ(m) (gcd(n,m)=1)
性质2
φ ( p k ) = p k − p k − 1 = p k ( 1 − 1 p ) ( p ∈ p r i m e ) \varphi(p^k)=p^k-p^{k-1}=p^k(1-\frac 1 p)~~~~(p\in prime) φ(pk)=pk−pk−1=pk(1−p1) (p∈prime)
推柿子
根据性质1,有:
φ ( n ) = φ ( p 1 c 1 ) φ ( p 2 c 2 ) . . . φ ( p k c k ) \varphi(n)=\varphi(p_1^{c_1})\varphi(p_2^{c_2})...\varphi(p_k^{c_k}) φ(n)=φ(p1c1)φ(p2c2)...φ(pkck)
根据性质2,有:
φ ( n ) = p 1 c 1 ( 1 − 1 p 1 ) p 2 c 2 ( 1 − 1 p 2 ) . . . p k c 2 ( 1 − 1 p k ) \varphi(n)=p_1^{c_1}(1-\frac 1 {p_1})p_2^{c_2}(1-\frac 1 {p_2})...p_k^{c_2}(1-\frac 1 {p_k}) φ(n)=p1c1(1−p11)p2c2(1−p21)...pkc2(1−pk1)
φ
(
n
)
=
p
1
c
1
p
2
c
2
.
.
.
p
k
c
2
(
1
−
1
p
1
)
(
1
−
1
p
2
)
.
.
.
(
1
−
1
p
k
)
\varphi(n)=p_1^{c_1}p_2^{c_2}...p_k^{c_2}(1-\frac 1 {p_1})(1-\frac 1 {p_2})...(1-\frac 1 {p_k})
φ(n)=p1c1p2c2...pkc2(1−p11)(1−p21)...(1−pk1)
φ
(
n
)
=
n
∏
i
=
1
k
(
1
−
1
p
i
)
\varphi(n)=n\prod\limits_{i=1}^k (1-\frac 1 {p_i})
φ(n)=ni=1∏k(1−pi1)
性质们
性质1
φ ( n m ) = φ ( n ) φ ( m ) ( gcd ( n , m ) = 1 ) \varphi(nm)=\varphi(n)\varphi(m)~~(\gcd(n,m)=1) φ(nm)=φ(n)φ(m) (gcd(n,m)=1)
即 φ \varphi φ是个积性函数。
证明
考虑构造一个
n
n
n 行
m
m
m 列的矩阵:
(
1
2
⋯
r
⋯
m
1
m
+
1
1
m
+
2
⋯
1
m
+
r
⋯
2
m
2
m
+
1
2
m
+
2
⋯
2
m
+
r
⋯
3
m
⋮
⋮
⋱
⋮
⋱
⋮
(
n
−
1
)
m
+
1
(
n
−
1
)
m
+
2
⋯
(
n
−
1
)
m
+
r
⋯
n
m
)
\left( \begin{matrix} 1 & 2 & \cdots & r & \cdots & m\\ 1m+1 & 1m+2 & \cdots & 1m+r & \cdots & 2m\\ 2m+1 & 2m+2 & \cdots & 2m+r & \cdots & 3m\\ \vdots & \vdots & \ddots & \vdots & \ddots & \vdots\\ (n-1)m+1 & (n-1)m+2 & \cdots & (n-1)m+r & \cdots & nm \end{matrix} \right)
⎝⎜⎜⎜⎜⎜⎛11m+12m+1⋮(n−1)m+121m+22m+2⋮(n−1)m+2⋯⋯⋯⋱⋯r1m+r2m+r⋮(n−1)m+r⋯⋯⋯⋱⋯m2m3m⋮nm⎠⎟⎟⎟⎟⎟⎞
显然,这个矩阵中包含了
1
1
1 到
n
m
nm
nm 内的所有数。而我们要从中找到与
n
m
nm
nm 互质的数,等价于找到与
m
m
m 互质且与
n
n
n 互质的数。
先考虑找到与 m m m 互质的数。
∵
\because
∵ 我们要找的数满足
gcd
(
i
m
+
r
,
m
)
=
1
\gcd(im+r,m)=1
gcd(im+r,m)=1,由欧几里得算法有
gcd
(
i
m
+
r
,
m
)
=
gcd
(
(
i
m
+
r
)
m
o
d
m
,
m
)
=
gcd
(
r
,
m
)
\gcd(im+r,m)=\gcd((im+r)\bmod m,m)=\gcd(r,m)
gcd(im+r,m)=gcd((im+r)modm,m)=gcd(r,m)
∴
\therefore
∴ 所有满足
gcd
(
r
,
m
)
=
1
\gcd(r,m)=1
gcd(r,m)=1 的列都与
m
m
m 互质,这样的列一共有
φ
(
m
)
\varphi(m)
φ(m) 个。
再考虑找到这些列中与 n n n 互质的数的个数。
对于每一列上的数,将他们对 n n n 取模后,两两互不相同,而每一列有 n n n 个数,也就是说,这 n n n 个数对 n n n 取模后刚好覆盖 0 0 0 ~ n − 1 n-1 n−1。
用反证法证明:
设有 i ≠ j i\neq j i=j,满足 i m + r ≡ j m + r ( m o d n ) im+r\equiv jm+r\pmod n im+r≡jm+r(modn)。
那么有 i m ≡ j m ( m o d n ) im \equiv jm \pmod n im≡jm(modn)
引理: a c ≡ b c ( m o d p ) ac\equiv bc \pmod p ac≡bc(modp) 可以变成 a ≡ b ( m o d p d ) a \equiv b \pmod {\dfrac p d} a≡b(moddp),其中 d = gcd ( c , p ) d=\gcd(c,p) d=gcd(c,p)。
证明在这里就不写了,给大家安利一篇文章——数论基础。
因为 gcd ( n , m ) = 1 \gcd(n,m)=1 gcd(n,m)=1,那么柿子变成:
i ≡ j ( m o d n ) i \equiv j \pmod n i≡j(modn)
与假设矛盾,故结论成立。
再一次请欧几里得算法登场——假如有 gcd ( a m o d b , b ) = 1 \gcd(a\bmod b,b)=1 gcd(amodb,b)=1,那么有 gcd ( a , b ) = 1 \gcd(a,b)=1 gcd(a,b)=1。
现在我们知道每一列的数对 n n n 取模后刚好覆盖 0 0 0 ~ n − 1 n-1 n−1,而我们知道 0 0 0 ~ n − 1 n-1 n−1中有 φ ( n ) \varphi(n) φ(n) 个数与 n n n 互质,因为这些数在模 n n n 意义下与 n n n 互质,所以这些数在不模 n n n 的意义下也与 n n n 互质,所以每一列就有 φ ( n ) \varphi(n) φ(n) 个数与 n n n 互质。
那么得出结论——在这个矩阵中,有 φ ( m ) \varphi(m) φ(m) 列与 m m m互质,而每一列中有 φ ( n ) \varphi(n) φ(n) 个数与 n n n互质,所以在 1 1 1 ~ n m nm nm中,一共有 φ ( n ) φ ( m ) \varphi(n)\varphi(m) φ(n)φ(m)个数与 n m nm nm互质。
故 φ \varphi φ 是个积性函数,证毕。
性质2
φ ( p k ) = p k − p k − 1 = p k ( 1 − 1 p ) ( p ∈ p r i m e ) \varphi(p^k)=p^k-p^{k-1}=p^k(1-\frac 1 p)~~~~(p\in prime) φ(pk)=pk−pk−1=pk(1−p1) (p∈prime)
证明:
因为 p p p 是一个质数,所以对于 p k p^k pk,只有 p p p 的倍数才不跟 p k p^k pk 互质。
在 1 1 1 ~ p k p^k pk 中, p p p 的倍数可以表示为 a p ( 1 ≤ a ≤ p k − 1 ) ap~(1\leq a \leq p^{k-1}) ap (1≤a≤pk−1),也就是说, p p p 的倍数一共有 p k − 1 p^{k-1} pk−1 个。
所以 p k − p k − 1 p^k-p^{k-1} pk−pk−1就是与 p k p^k pk 互质的数的个数,证毕。
补充
根据这个性质,再加上 φ \varphi φ 是一个积性函数,就可以用欧拉筛来筛 φ \varphi φ 了。
具体来说,对于 p ∈ p r i m e p\in prime p∈prime, φ ( p ) = p − 1 \varphi(p)=p-1 φ(p)=p−1,对于 p k p^k pk, φ ( p k ) = p k − p k − 1 = φ ( p k − 1 ) p \varphi(p^k)=p^k-p^{k-1}=\varphi(p^{k-1})p φ(pk)=pk−pk−1=φ(pk−1)p。
代码如下:
int n=100;
int prime[110],t=0;
int phi[110];
bool v[110];
void work()
{
phi[1]=1;
for(int i=2;i<=n;i++)
{
if(!v[i])prime[++t]=i,phi[i]=i-1;
for(int j=1;j<=t&&i*prime[j]<=100;j++)
{
v[i*prime[j]]=true;
if(i%prime[j]==0)
{
phi[i*prime[j]]=phi[i]*prime[j];
break;
}
phi[i*prime[j]]=phi[i]*(prime[j]-1);
}
}
}
性质3
∑ d ∣ n φ ( d ) = n \sum_{d|n}\varphi(d)=n ∑d∣nφ(d)=n
证明:
考虑这样一个长度为
n
n
n的序列:
1
n
,
2
n
,
3
n
,
⋯
,
n
−
1
n
,
n
n
\frac 1 n,\frac 2 n,\frac 3 n,\cdots , \frac {n-1} n,\frac n n
n1,n2,n3,⋯,nn−1,nn
约分之后,显然,分母为
d
(
d
∣
n
)
d~(d|n)
d (d∣n) 的分数一共有
φ
(
d
)
\varphi(d)
φ(d) 个,所以将所有的
φ
\varphi
φ 加起来,就有了
∑
d
∣
n
φ
(
d
)
=
n
\sum_{d|n}\varphi(d)=n
∑d∣nφ(d)=n。
得证。
性质 4 & 5
4、当满足 n ≥ 2 n\geq 2 n≥2时,有 φ ( n ) ≡ 0 ( m o d 2 ) \varphi(n) \equiv 0 \pmod 2 φ(n)≡0(mod2)
证明
假如有一个数 x ( x ≤ n ) x~(x\leq n) x (x≤n) 与 n n n 互质,即 gcd ( x , n ) = 1 \gcd(x,n)=1 gcd(x,n)=1,那么根据更相减损术,有 gcd ( n , n − x ) = 1 \gcd(n,n-x)=1 gcd(n,n−x)=1,也就是说每一个与 n n n 互质的数 x x x 都有个对应的数 n − x n-x n−x也跟 n n n 互质,所以 φ ( n ) \varphi(n) φ(n)一定是个偶数。
跟着来的,是性质5。
5、当满足 n ≥ 2 n\geq 2 n≥2时,小于 n n n 的且与 n n n 互质的数的和为 φ ( n ) × n / 2 \varphi(n)\times n~/~2 φ(n)×n / 2。
证明
因为每个与 n n n 互质的数 x x x 都有对应的 n − x n-x n−x 也与 n n n 互质,那么所有与 n n n 互质的数的平均数就是 x + ( n − x ) 2 = n 2 \dfrac {x+(n-x)} 2=\dfrac n 2 2x+(n−x)=2n,又因为与 n n n 互质的数的个数为 φ ( n ) \varphi(n) φ(n) ,所以与 n n n 互质的数的和为 φ ( n ) × n / 2 \varphi(n)\times n~/~2 φ(n)×n / 2。
证毕。
性质6
φ ( n ) = ∑ d ∣ n n d μ ( d ) \varphi(n)=\sum\limits_{d|n} \dfrac n d ~\mu(d) φ(n)=d∣n∑dn μ(d)
欧拉定理
定义
当满足 gcd ( a , p ) = 1 \gcd(a,p)=1 gcd(a,p)=1 时,有 a φ ( p ) ≡ 1 ( m o d p ) a^{\varphi(p)}\equiv 1 \pmod p aφ(p)≡1(modp)。
证明
设集合 X = { x i ∣ 1 ≤ i ≤ φ ( n ) } , M = { m i ∣ 1 ≤ i ≤ φ ( n ) } X=\{x_i|1\leq i \leq \varphi(n)\},M=\{m_i|1\leq i \leq \varphi(n)\} X={xi∣1≤i≤φ(n)},M={mi∣1≤i≤φ(n)},其中 x i x_i xi 的意义是第 i i i 个与 n n n 互质的数。那么 X X X 集合也就是所有与 n n n 互质的数的集合,所以里面元素个数理所当然是 φ ( n ) \varphi(n) φ(n) 个。
集合 M M M 的意义往下看。
设现在有这样一个方程组:
{
a
×
x
1
≡
m
1
(
m
o
d
p
)
a
×
x
2
≡
m
2
(
m
o
d
p
)
a
×
x
3
≡
m
3
(
m
o
d
p
)
⋯
a
×
x
φ
(
n
)
≡
m
φ
(
n
)
(
m
o
d
p
)
\begin{cases} a\times x_1\equiv m_1 \pmod p\\ a\times x_2\equiv m_2\pmod p\\ a\times x_3\equiv m_3\pmod p\\ \cdots\\ a\times x_{\varphi(n)}\equiv m_{\varphi(n)}\pmod p\\ \end{cases}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧a×x1≡m1(modp)a×x2≡m2(modp)a×x3≡m3(modp)⋯a×xφ(n)≡mφ(n)(modp)
引理1: 对于
i
≠
j
(
1
≤
i
,
j
≤
φ
(
n
)
)
i\neq j~~(1\leq i,j\leq \varphi(n))
i=j (1≤i,j≤φ(n)),有
m
i
≠
m
j
m_i\neq m_j
mi=mj。
证明:
考虑反证法。
设对于 i ≠ j ( 1 ≤ i , j ≤ φ ( n ) ) i\neq j~~(1\leq i,j\leq \varphi(n)) i=j (1≤i,j≤φ(n)),有 m i = m j m_i=m_j mi=mj。
∵
m
i
=
m
j
\because~m_i=m_j
∵ mi=mj
a
×
x
i
≡
m
i
(
m
o
d
p
)
~~~~~a \times x_i\equiv m_i \pmod p
a×xi≡mi(modp)
a
×
x
j
≡
m
j
(
m
o
d
p
)
~~~~~a \times x_j\equiv m_j \pmod p
a×xj≡mj(modp)
∴
a
×
x
i
≡
a
×
x
j
(
m
o
d
p
)
\therefore~a \times x_i \equiv a\times x_j \pmod p
∴ a×xi≡a×xj(modp)
引理: a c ≡ b c ( m o d p ) ac\equiv bc \pmod p ac≡bc(modp) 可以变成 a ≡ b ( m o d p d ) a \equiv b \pmod {\frac p d} a≡b(moddp),其中 d = gcd ( c , p ) d=\gcd(c,p) d=gcd(c,p)。
没错这就是上面的那个
因为 gcd ( a , p ) = 1 \gcd(a,p)=1 gcd(a,p)=1,所以柿子可以变成
x i ≡ x j ( m o d p ) x_i\equiv x_j \pmod p xi≡xj(modp)
显然 X X X 集合中没有相同的元素,故这条式子与假设矛盾。所以对于 i ≠ j ( 1 ≤ i , j ≤ φ ( n ) ) i\neq j~~(1\leq i,j\leq \varphi(n)) i=j (1≤i,j≤φ(n)),有 m i ≠ m j m_i\neq m_j mi=mj。
得证。
引理2: 对于 m i ( 1 ≤ i ≤ φ ( p ) ) m_i~~(1\leq i \leq \varphi(p)) mi (1≤i≤φ(p)),有 m i ∈ X m_i \in X mi∈X。
证明:
∵ a × x i ≡ m i ( m o d p ) \because~a\times x_i \equiv m_i \pmod p ∵ a×xi≡mi(modp)
∵ gcd ( a , p ) = 1 , gcd ( x i , p ) = 1 \because \gcd(a,p)=1,\gcd(x_i,p)=1 ∵gcd(a,p)=1,gcd(xi,p)=1
∴ gcd ( a × x i , p ) = 1 \therefore \gcd(a\times x_i,p)=1 ∴gcd(a×xi,p)=1
∴ gcd ( m i , p ) = 1 \therefore \gcd(m_i,p)=1 ∴gcd(mi,p)=1
∵ m i ≤ p \because~m_i\leq p ∵ mi≤p
∴ m i \therefore~m_i ∴ mi 是一个小于 p p p 且与 p p p 互质的数
我们发现这正是 X X X 集合内的数的定义,于是有 m i ∈ X m_i\in X mi∈X。
得证。
回到上面的方程组,如果我们将这
φ
(
p
)
\varphi(p)
φ(p) 条柿子乘起来,就得到了:
a
φ
(
p
)
×
x
1
×
x
2
×
⋯
×
x
φ
(
p
)
≡
m
1
×
m
2
×
⋯
×
m
φ
(
p
)
a^{\varphi(p)}\times x_1\times x_2 \times \cdots \times x_{\varphi(p)}\equiv m_1 \times m_2 \times \cdots \times m_{\varphi(p)}
aφ(p)×x1×x2×⋯×xφ(p)≡m1×m2×⋯×mφ(p)
因为 x i ∈ X , m i ∈ X ( 1 ≤ i ≤ φ ( p ) ) x_i \in X,m_i \in X~~(1\leq i \leq \varphi(p)) xi∈X,mi∈X (1≤i≤φ(p)),且 X X X 中的元素两两互不相同, M M M 中的元素也是两两互不相同,综上所述,可以得出 M M M 集合与 X X X 集合完全相同。
也就是说,对于任意 m i ( 1 ≤ i ≤ φ ( p ) ) m_i~(1 \leq i \leq \varphi(p)) mi (1≤i≤φ(p)),一定有一个相同的 x j ( 1 ≤ j ≤ φ ( p ) ) x_j~(1 \leq j \leq \varphi(p)) xj (1≤j≤φ(p))。
那么就可以将上面这条式子中的 m i m_i mi 和 x j x_j xj 消掉了。
于是得到下面这条式子:
a
φ
(
p
)
≡
1
(
m
o
d
p
)
a^{\varphi(p)}\equiv 1 \pmod p
aφ(p)≡1(modp)
欧拉定理得证。