欧拉函数
Ψ(n) 表示不小于n的自然数中,与n互质的数的个数
若一个整数N可以表示为:
N
=
p
1
α
1
p
2
α
2
.
.
.
p
n
α
n
N=p_{1}^{α_{1}}p_{2}^{α_{2}}...p_{n}^{α_{n}}
N=p1α1p2α2...pnαn
则有欧拉函数;
Ψ
(
n
)
=
N
(
1
−
1
p
1
)
(
1
−
1
p
2
)
.
.
.
(
1
−
1
p
n
)
Ψ(n) =N(1- \frac{1}{p_{1}})(1- \frac{1}{p_{2}})...(1- \frac{1}{p_{n}})
Ψ(n)=N(1−p11)(1−p21)...(1−pn1)
证明方法:
1.
在
1
−
N
中
的
所
有
数
,
筛
去
p
1
,
p
2...
P
m
的
所
有
倍
数
1.在1-N中的所有数,筛去p1,p2...P_{m}的所有倍数
1.在1−N中的所有数,筛去p1,p2...Pm的所有倍数
2. 加 上 所 有 p i ⋅ p j 的 倍 数 , 减 去 所 有 p i ⋅ p j ⋅ p k 的 倍 数 . . . 2.加上所有p_{i}\cdot p_{j}的倍数,减去所有p_{i}\cdot p_{j} \cdot p_{k}的倍数... 2.加上所有pi⋅pj的倍数,减去所有pi⋅pj⋅pk的倍数...
3. 化 简 得 Ψ ( n ) = N ( 1 − 1 p 1 ) ( 1 − 1 p 2 ) . . . ( 1 − 1 p n ) 3.化简得Ψ(n) =N(1- \frac{1}{p_{1}})(1- \frac{1}{p_{2}})...(1- \frac{1}{p_{n}}) 3.化简得Ψ(n)=N(1−p11)(1−p21)...(1−pn1)
欧拉定理
若 a 与 n 互 质 , 则 有 a Ψ ( n ) ≡ 1 ( m o d n ) 若a与n互质,则有\ a^{Ψ(n)} \equiv 1(mod\ n) 若a与n互质,则有 aΨ(n)≡1(mod n)
证明如下:
由
欧
拉
函
数
得
到
得
Ψ
(
n
)
个
数
a
1
a
2
.
.
.
a
Ψ
(
n
)
≡
1
(
m
o
d
n
)
由欧拉函数得到得Ψ(n)个数 a_{1}a_{2}...a_{Ψ(n)}\equiv 1(mod\ n)
由欧拉函数得到得Ψ(n)个数a1a2...aΨ(n)≡1(mod n)
则 a 1 到 a n 皆 有 a ∗ a 1 ≡ 1 ( m o d n ) . . . a ∗ a Ψ ( n ) ≡ 1 ( m o d n ) 则a_{1}到a_{n}皆有a*a_{1}\equiv 1(mod\ n)...a*a_{Ψ(n)}\equiv1(mod \ n) 则a1到an皆有a∗a1≡1(mod n)...a∗aΨ(n)≡1(mod n)
以 上 两 式 关 于 n 同 余 , 因 此 消 去 1 a 2 . . . a Ψ ( n ) 得 到 : a Ψ ( n ) ≡ 1 ( m o d n ) 以上两式关于n同余,因此消去_{1}a_{2}...a_{Ψ(n)}得到:a^{Ψ(n)}\equiv 1(mod \ n) 以上两式关于n同余,因此消去1a2...aΨ(n)得到:aΨ(n)≡1(mod n)
由此我们可以由此推导出费马小定理
当 n 为 质 数 的 时 候 , Ψ ( n ) = n − 1 , 因 此 有 a n − 1 ≡ 1 ( m o d n ) 当n为质数的时候,Ψ(n)=n-1,因此有 a^{n-1} \equiv 1(mod \ n) 当n为质数的时候,Ψ(n)=n−1,因此有an−1≡1(mod n)
逆元
逆元的定义:
若
整
数
b
,
m
互
质
.
对
于
整
数
a
若
满
足
a
b
≡
a
⋅
x
(
m
o
d
m
)
若整数b,m互质.对于整数a若满足\frac{a}{b}\equiv a\cdot x(mod\ m)
若整数b,m互质.对于整数a若满足ba≡a⋅x(mod m)
则称x为b mod m的乘法逆元,记作:
a
b
≡
a
⋅
b
−
1
(
m
o
d
m
)
\frac{a}{b} \equiv a\cdot b^{-1} (mod\ m)
ba≡a⋅b−1(mod m)
因此b的逆元x对于b有如下关系:
b
⋅
x
≡
1
(
m
o
d
m
)
b\cdot x \equiv 1(mod\ m)
b⋅x≡1(mod m)
由费马小定理,当m为质数的时候,有:
b
⋅
b
m
−
2
≡
b
m
−
1
≡
1
(
m
o
d
m
)
b\cdot b^{m-2} \equiv b^{m-1} \equiv 1(mod\ m)
b⋅bm−2≡bm−1≡1(mod m)
因 此 此 时 , b m − 2 便 是 b 关 于 m 的 一 个 逆 元 因此此时,b^{m-2}便是b关于m的一个逆元 因此此时,bm−2便是b关于m的一个逆元
扩展欧几里得算法
裴蜀定理
对于任意正整数a,b,那么一定存在非零整数x,y使得 ax+by = gcd(a,b)
若ax+by=d,则d为a和b的最大公约数的倍数
证明方法:使用扩展欧几里得进行构造
对
于
求
解
a
x
+
b
y
=
d
,
经
过
迭
代
可
以
得
到
b
y
+
(
a
m
o
d
b
)
x
=
d
对于求解ax+by=d,经过迭代可以得到by+(a \ mod\ b)x=d
对于求解ax+by=d,经过迭代可以得到by+(a mod b)x=d
整 理 得 到 a x + b ( y − [ a b ] x ) = d 整理得到\ ax+b(y-[\frac{a}{b}]x)=d 整理得到 ax+b(y−[ba]x)=d
因 此 构 造 出 来 的 x = x , y = y − [ a b ] 因此构造出来的\ x=x ,\ y=y-[\frac{a}{b}] 因此构造出来的 x=x, y=y−[ba]
代码如下
int exgcd(int a,int b,int &x,int &y){
if(!b){
x=1,y=0;
return a;
}
int d=exgcd(b,a%b,y,x);
y-=a/b*x;
return d;
}
中国剩余定理
m 1 , m 2 . . . m k 两 两 互 质 , 求 解 方 程 组 m_{1},m_{2}...m_{k}两两互质,求解方程组 m1,m2...mk两两互质,求解方程组
x ≡ a 1 ( m o d m ) x\equiv a_{1} (mod\ m) x≡a1(mod m)
x ≡ a 2 ( m o d m ) x\equiv a_{2} (mod\ m) x≡a2(mod m)
. . . ... ...
x ≡ a k ( m o d m ) x\equiv a_{k} (mod\ m) x≡ak(mod m)
求解过程:
令
M
=
m
1
m
2
.
.
.
m
k
令M=m_{1}m_{2}...m_{k}
令M=m1m2...mk
M i = M / m i M_{i}=M/m_{i} Mi=M/mi
M i − 1 表 示 M i m o d m i 的 逆 M_{i}^{-1}表示M_{i}\ mod m_{i} \ 的逆 Mi−1表示Mi modmi 的逆
则通解为:
x
=
a
1
M
1
M
1
−
1
+
.
.
.
+
a
k
M
k
M
k
−
1
x=a_{1}M_{1}M_{1}^{-1}\ + ...\ +\ a_{k}M_{k}M_{k}^{-1}
x=a1M1M1−1 +... + akMkMk−1
因 此 我 们 可 以 使 用 扩 展 欧 几 里 得 求 M i 的 逆 元 , 从 而 求 解 问 题 因此我们可以使用扩展欧几里得求M_{i}的逆元,从而求解问题 因此我们可以使用扩展欧几里得求Mi的逆元,从而求解问题