Carmichael函数
在数论中,Carmichael函数的定义为使得 a m ≡ 1 m o d n a^{m} \equiv 1 \bmod n am≡1modn成立的最小正整数 m m m,其中 ( a , n ) = 1 (a,n)=1 (a,n)=1,将 m m m记作 λ ( n ) \lambda(n) λ(n)。在抽象代数术语中, λ ( n ) \lambda(n) λ(n)是模 n n n的乘法群的指数。
Carmichael函数也被称为规约函数(reduced totient function)以及最小泛指数函数(least universal exponent function)。
下图是一张Carmichael函数 λ ( n ) \lambda(n) λ(n)与欧拉函数 φ ( n ) \varphi(n) φ(n)的对比表:
n n n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
λ ( n ) \lambda(n) λ(n) | 1 | 1 | 2 | 2 | 4 | 2 | 6 | 2 | 6 | 4 | 10 | 2 | 12 | 6 | 4 | 4 | 16 | 6 | 18 | 4 | 6 | 10 | 22 | 2 | 20 | 12 | 18 | 6 | 28 | 4 | 30 | 8 | 10 | 16 | 12 | 6 |
φ ( n ) \varphi(n) φ(n) | 1 | 1 | 2 | 2 | 4 | 2 | 6 | 4 | 6 | 4 | 10 | 4 | 12 | 6 | 8 | 8 | 16 | 6 | 18 | 8 | 12 | 10 | 22 | 8 | 20 | 12 | 18 | 12 | 28 | 8 | 30 | 16 | 20 | 16 | 24 | 12 |
示例
对于8的Charmichael函数是2,即 λ ( 8 ) = 2 \lambda(8)=2 λ(8)=2,则对于任意的 a a a满足 ( a , 8 ) = 1 (a,8)=1 (a,8)=1,有 a 2 = 1 m o d 8 a^2=1\bmod 8 a2=1mod8。也就是说 1 2 ≡ 1 m o d 8 1^2\equiv1\bmod8 12≡1mod8, 3 2 = 9 ≡ 1 m o d 8 3^2=9\equiv1\bmod8 32=9≡1mod8, 5 2 = 25 ≡ 1 m o d 8 5^2=25\equiv1\bmod8 52=25≡1mod8,以及 7 2 = 49 ≡ 1 m o d 8 7^{2}=49 \equiv 1\bmod 8 72=49≡1mod8。
对于欧拉函数来说, φ ( 8 ) = 4 \varphi(8)=4 φ(8)=4,因为欧拉函数只需要满足对于所有与8互素的数 a a a,有 a 4 ≡ 1 ( m o d 8 ) a^{4} \equiv 1(\bmod 8) a4≡1(mod8),而不需要满足 a a a的最小性。
用Carmichael定理计算 λ ( n ) \lambda(n) λ(n)
根据唯一因式分解定理,任何n>1的整数都可以用唯一的方式写成
n
=
p
1
r
1
p
2
r
2
⋯
p
k
r
k
n=p_{1}^{r_{1}} p_{2}^{r_{2}} \cdots p_{k}^{r_{k}}
n=p1r1p2r2⋯pkrk
其中,
p
1
<
p
2
<
…
<
p
k
p_{1}<p_{2}<\ldots<p_{k}
p1<p2<…<pk是有小到大排列的素数,
r
1
,
r
2
,
…
,
r
k
r_{1}, r_{2}, \ldots, r_{k}
r1,r2,…,rk是正整数。那么,
λ
(
n
)
\lambda(n)
λ(n)就是其中每一项的λ的最小公倍数,有:
λ
(
n
)
=
lcm
(
λ
(
p
1
r
1
)
,
λ
(
p
2
r
2
)
,
…
,
λ
(
p
k
r
k
)
)
\lambda(n)=\operatorname{lcm}\left(\lambda\left(p_{1}^{r_{1}}\right), \lambda\left(p_{2}^{r_{2}}\right), \ldots, \lambda\left(p_{k}^{r_{k}}\right)\right)
λ(n)=lcm(λ(p1r1),λ(p2r2),…,λ(pkrk))
上述的公式可由中国剩余定理来证明。
Carmichael定理
Carmichael定理解释了如何计算素数幂
p
r
p^r
pr的
λ
(
p
r
)
\lambda(p^r)
λ(pr):对于奇数素数的幂以及2和4,
λ
(
p
r
)
\lambda(p^r)
λ(pr)等于欧拉函数
φ
(
p
r
)
\varphi(p^r)
φ(pr);对于
2
3
2^3
23及以上的2的幂次,它等于欧拉函数的一半,即:
λ
(
p
r
)
=
{
φ
(
p
r
)
if
p
r
=
2
,
3
r
,
4
,
5
r
,
7
r
,
1
1
r
,
1
3
r
,
1
7
r
,
1
9
r
,
2
3
r
,
2
9
r
,
3
1
r
,
…
1
2
φ
(
p
r
)
if
p
r
=
8
,
16
,
32
,
64
,
128
,
256
,
…
\lambda\left(p^{r}\right)=\left\{\begin{array}{ll}\varphi\left(p^{r}\right) & \text { if } p^{r}=2,3^{r}, 4,5^{r}, 7^{r}, 11^{r}, 13^{r}, 17^{r}, 19^{r}, 23^{r}, 29^{r}, 31^{r}, \ldots \\ \frac{1}{2} \varphi\left(p^{r}\right) & \text { if } p^{r}=8,16,32,64,128,256, \ldots\end{array}\right.
λ(pr)={φ(pr)21φ(pr) if pr=2,3r,4,5r,7r,11r,13r,17r,19r,23r,29r,31r,… if pr=8,16,32,64,128,256,…
素数幂
p
r
p^r
pr的欧拉函数的计算方法是:
φ
(
p
r
)
=
p
r
−
1
(
p
−
1
)
\quad\varphi\left(p^{r}\right)=p^{r-1}(p-1)
φ(pr)=pr−1(p−1)
Carmichael函数的性质
设
a
a
a和
n
n
n互素,
m
m
m是最小指数,
a
m
≡
1
m
o
d
n
a^m\equiv1\bmod n
am≡1modn,那么有:
m
∣
λ
(
n
)
\quad m \mid \lambda(n)
m∣λ(n)
也就是说,模
n
n
n整数环中任意元素
a
a
a的阶
m
:
=
ord
n
(
a
)
m:=\operatorname{ord}_{n}(a)
m:=ordn(a)整除
λ
(
n
)
\lambda(n)
λ(n)。同时还有:
λ
(
n
)
=
max
{
ord
n
(
a
)
:
gcd
(
a
,
n
)
=
1
}
\quad\lambda(n)=\max \left\{\operatorname{ord}_{n}(a): \operatorname{gcd}(a, n)=1\right\}
λ(n)=max{ordn(a):gcd(a,n)=1}
a
∣
b
⇒
λ
(
a
)
∣
λ
(
b
)
\quad a|b \Rightarrow \lambda(a)| \lambda(b)
a∣b⇒λ(a)∣λ(b)
λ
(
lcm
(
a
,
b
)
)
=
lcm
(
λ
(
a
)
,
λ
(
b
)
)
\quad \lambda(\operatorname{lcm}(a, b))=\operatorname{lcm}(\lambda(a), \lambda(b))
λ(lcm(a,b))=lcm(λ(a),λ(b))