1 欧拉公式
费马小定理指出,如果
p
p
p是素数且
p
∤
a
p\nmid a
p∤a,则
a
p
−
1
≡
1
(
m
o
d
p
)
a^{p-1}\equiv 1\ \ (mod\ p)
ap−1≡1 (mod p)。如果
p
p
p换成合数,那这个结论就不正确了,例如
5
5
≡
5
(
m
o
d
6
)
5^5\equiv 5\ \ (mod\ 6)
55≡5 (mod 6)。因此就有了一个问题,是否有依赖模
m
m
m的指数使得:
a
?
?
?
≡
1
(
m
o
d
m
)
a^{???}\equiv 1\ \ (mod\ m)
a???≡1 (mod m)
首先观察到,如果
g
c
d
(
a
,
m
)
>
1
gcd(a,m)\gt 1
gcd(a,m)>1,那这是不可能的,假设
a
k
≡
1
(
m
o
d
m
)
a^k\equiv 1\ \ (mod\ m)
ak≡1 (mod m),则对某整数
y
y
y有
a
k
=
1
+
y
m
a^k = 1+ym
ak=1+ym,所以
g
c
d
(
a
,
m
)
gcd(a,m)
gcd(a,m)整除
a
k
−
y
m
=
1
a^k - ym=1
ak−ym=1,换言之,如果
a
a
a的某个幂模
m
m
m余
1
1
1,则必有
g
c
d
(
a
,
m
)
=
1
gcd(a,m) = 1
gcd(a,m)=1。这告诉我们要考虑与
m
m
m互素的数的集合:
{
a
:
1
≤
a
≤
m
,
g
c
d
(
a
,
m
)
=
1
}
\{a:1\le a\le m,gcd(a,m) = 1\}
{a:1≤a≤m,gcd(a,m)=1}
例如:
1
1
1与
m
m
m之间与
m
m
m互素的整数个数是个很重要的量,我们将它记为:
ϕ
(
m
)
=
#
{
a
:
1
≤
a
≤
m
,
g
c
d
(
a
,
m
)
=
1
}
\phi(m) = \# \{a:1\le a\le m,gcd(a,m) = 1\}
ϕ(m)=#{a:1≤a≤m,gcd(a,m)=1}
函数
ϕ
(
m
)
\phi(m)
ϕ(m)叫做欧拉函数。当
p
p
p是素数时,
1
≤
a
<
p
1\le a \lt p
1≤a<p的每个整数都与
p
p
p互素。所以,对素数
p
p
p有公式:
ϕ
(
p
)
=
p
−
1
\phi(p) = p-1
ϕ(p)=p−1
定理(欧拉公式):如果
g
c
d
(
a
,
m
)
=
1
gcd(a,m) = 1
gcd(a,m)=1则:
a
ϕ
(
m
)
≡
1
(
m
o
d
m
)
a^{\phi(m)} \equiv 1\ \ (mod\ m)
aϕ(m)≡1 (mod m)
欧拉公式的证明与费马小定理的证明方法几乎一致,在证明之前先证明下述引理。
引理:如果
g
c
d
(
a
,
m
)
=
1
gcd(a,m) = 1
gcd(a,m)=1,则数列:
b
1
a
,
b
2
a
,
⋯
,
b
ϕ
(
m
)
a
(
m
o
d
m
)
b_1a,b_2a,\cdots,b_{\phi(m)}a\ \ \ (mod\ m)
b1a,b2a,⋯,bϕ(m)a (mod m)
与数列:
b
1
,
b
2
,
⋯
,
b
ϕ
(
m
)
(
m
o
d
m
)
b_1,b_2,\cdots,b_{\phi(m)}\ \ \ (mod\ m)
b1,b2,⋯,bϕ(m) (mod m)
相同,尽管它们的次序可能不同。
如果
b
b
b与
m
m
m互素,则
a
b
ab
ab也与
m
m
m互素。从而数列:
b
1
a
,
b
2
a
,
⋯
,
b
ϕ
(
m
)
a
(
m
o
d
m
)
b_1a,b_2a,\cdots,b_{\phi(m)}a\ \ \ (mod\ m)
b1a,b2a,⋯,bϕ(m)a (mod m)
中的每一个数同余于数列
b
1
,
b
2
,
⋯
,
b
ϕ
(
m
)
(
m
o
d
m
)
b_1,b_2,\cdots,b_{\phi(m)}\ \ \ (mod\ m)
b1,b2,⋯,bϕ(m) (mod m)
中的每一个数。进而每一个数列都有
ϕ
(
m
)
\phi(m)
ϕ(m)个数。因此,如果能够证明第一个数列中的数对于模
m
m
m不同,则就得到两个数列(重排后)相同。
假设从第一个数列中取两个数
b
j
a
,
b
k
a
b_ja,b_ka
bja,bka并假设它们同余:
b
j
a
≡
b
k
a
(
m
o
d
m
)
b_ja \equiv b_ka\ \ (mod\ m)
bja≡bka (mod m)
因此有
m
∣
(
b
j
−
b
k
)
a
m\mid(b_j-b_k)a
m∣(bj−bk)a,由于
m
m
m与
a
a
a互素,故
m
∣
b
j
−
b
k
m\mid b_j - b_k
m∣bj−bk,又因为
∣
b
j
−
b
k
∣
≤
m
−
1
|b_j - b_k|\le m-1
∣bj−bk∣≤m−1,所以
b
j
−
b
k
=
0
b_j-b_k=0
bj−bk=0,这说明数列中的数模
m
m
m不同。
根据引理,由于两个数列是相同的,所以第一个数列的乘积等于第二个数列的乘积:
(
b
1
a
)
∗
(
b
2
a
)
∗
(
b
3
a
)
∗
⋯
∗
(
b
ϕ
(
m
)
a
)
≡
b
1
b
2
⋯
b
ϕ
(
m
)
(
m
o
d
m
)
(b_1a)*(b_2a)*(b_3a)*\cdots * (b_{\phi(m)}a)\equiv b_1b_2\cdots b_{\phi(m)}\ \ (mod\ m)
(b1a)∗(b2a)∗(b3a)∗⋯∗(bϕ(m)a)≡b1b2⋯bϕ(m) (mod m)
左边提出
ϕ
(
m
)
\phi(m)
ϕ(m)个
a
a
a并消去
b
1
b
2
⋯
b
ϕ
(
m
)
b_1b_2\cdots b_{\phi(m)}
b1b2⋯bϕ(m)得到:
a
ϕ
(
m
)
≡
1
(
m
o
d
m
)
a^{\phi(m)} \equiv 1\ \ (mod\ m)
aϕ(m)≡1 (mod m)
2 参考资料
《数论概论》第四版 P47-P49