【数论 】
1|0五、数论
文章目录
1|1快速幂
1|2矩阵快速幂
1|3矩阵快速幂加速递推
1|4最大公约数和最小公倍数
欧几里得算法: g c d ( a , b ) = g c d ( a , a % b ) gcd(a,b)=gcd(a,a\%b) gcd(a,b)=gcd(a,a%b)
若 g c d ( p , q ) = x gcd(p,q)=x gcd(p,q)=x, l c m ( p , q ) = y lcm(p,q)=y lcm(p,q)=y,则 p q = g c d ( p , q ) l c m ( p , q ) = x y pq=gcd(p,q)lcm(p,q)=xy pq=gcd(p,q)lcm(p,q)=xy
最大公约数和最小公倍数问题
题目描述
输入两个正整数 x 0 , y 0 x_0, y_0 x0,y0,求出满足下列条件的 P , Q P, Q P,Q 的个数:
-
P , Q P,Q P,Q 是正整数。
-
要求 P , Q P, Q P,Q 以 x 0 x_0 x0 为最大公约数,以 y 0 y_0 y0 为最小公倍数。
试求:满足条件的所有可能的 P , Q P, Q P,Q 的个数。
输入格式
一行两个正整数 x 0 , y 0 x_0, y_0 x0,y0。
输出格式
一行一个数,表示求出满足条件的 P , Q P, Q P,Q 的个数。
样例 #1
样例输入 #1
样例输出 #1
1|5埃式筛法 O ( n l o g l o g ( n ) ) O(nloglog(n)) O(nloglog(n))
1|6欧式筛法 O ( n ) O(n) O(n)
1|7欧拉函数
定义: 1 1 1~ n n n中与 n n n互质的数的个数成为欧拉函数,记为 φ ( n ) \varphi(n) φ(n)
例如: φ ( 1 ) = 1 \varphi(1)=1 φ(1)=1, φ ( 2 ) = 1 \varphi(2)=1 φ(2)=1, φ ( 3 ) = 2 \varphi(3)=2 φ(3)=2, φ ( 4 ) = 2 \varphi(4)=2 φ(4)=2, φ ( 5 ) = 4 \varphi(5)=4 φ(5)=4
性质:
1.若 p p p是质数,则 φ ( p ) = p − 1 \varphi(p)=p-1 φ(p)=p−1
2.若p是质数,则 φ ( p k ) = ( p − 1 ) p k − 1 \varphi(p^k)=(p-1)p^{k-1} φ(pk)=(p−1)pk−1
3.积性函数:若 g c d ( m , n ) = 1 gcd(m,n)=1 gcd(m,n)=1,即 m , n m,n m,n互质,则 φ ( m n ) = φ ( m ) φ ( n ) \varphi(mn)=\varphi(m)\varphi(n) φ(mn)=φ(m)φ(n)
计算公式
n
=
∑
i
=
1
s
p
i
α
i
=
p
1
α
1
p
2
α
2
⋯
p
s
α
s
φ
(
n
)
=
n
×
∑
i
=
1
s
p
i
−
1
p
i
=
n
×
p
1
−
1
p
1
×
p
2
−
1
p
2
×
⋯
×
p
s
−
1
p
s
n=\sum_{i=1}^sp_{i}^{\alpha_i}=p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_s^{\alpha_s}\ \varphi(n)=n\times\sum_{i=1}^s\frac{p_{i}-1}{p_i} =n\times\frac{p_1-1}{p1}\times\frac{p_2-1}{p_2}\times \cdots \times\frac{p_s-1}{p_s}
n=i=1∑spiαi=p1α1p2α2⋯psαsφ(n)=n×i=1∑spipi−1=n×p1p1−1×p2p2−1×⋯×psps−1
1|8线性欧拉函数
1|9约数定理
n = ∏ i = 1 s p i α i , 则 d ( n ) = ∏ i = 1 s ( α i + 1 ) n=\prod_{i=1}^sp_i^{\alpha_i},则d(n)=\prod_{i=1}^s(\alpha_i+1) n=i=1∏spiαi,则d(n)=i=1∏s(αi+1)
同余式
a
≡
b
(
m
o
d
m
)
a\equiv b(mod\ m)
a≡b(mod m) (
a
a
a和
b
b
b对m同余) 例如
乘法逆元
若 a a a, b b b互质 ( a % b ≠ 0 ) (a\%b\neq0) (a%b=0),且满足同余方程 a x ≡ 1 ( m o d b ) ax\equiv1(mod\ b) ax≡1(mod b),则称 x x x为 a a a模 b b b的乘法逆元,记作 a − 1 a^{-1} a−1
例如: 8 x ≡ 1 ( m o d 5 ) 8x \equiv 1(mod\ 5) 8x≡1(mod 5),解得 x = 2 , 7 , 12... x=2,7,12... x=2,7,12...
1|10费马小定理
若 p p p为质数,且 a , p a,p a,p互质,则 a p − 1 ≡ 1 ( m o d p ) a^{p-1}\equiv1(mod\ p) ap−1≡1(mod p)
**问题:**给定两个数 a , p , p a,p,p a,p,p是质数,求 a a a模 p p p的乘法逆元
由费马小定理, a p − 1 ≡ 1 ( m o d p ) a^{p-1}\equiv1(mod\ p) ap−1≡1(mod p),得 a × a p − 2 ≡ 1 ( m o d p ) a\times a^{p-2} \equiv1(mod\ p) a×ap−2≡1(mod p),则 a a a模 p p p的乘法逆元为 a p − 2 a^{p-2} ap−2
1|11欧拉定理
欧拉函数:
1
1
1~
n
n
n中与
n
n
n互质的数的个数成为欧拉函数,记为
φ
(
n
)
\varphi(n)
φ(n)
φ
(
n
)
=
n
×
∑
i
=
1
s
p
i
−
1
p
i
=
n
×
p
1
−
1
p
1
×
p
2
−
1
p
2
×
⋯
×
p
s
−
1
p
s
\varphi(n)=n\times\sum_{i=1}^s\frac{p_{i}-1}{p_i} =n\times\frac{p_1-1}{p1}\times\frac{p_2-1}{p_2}\times \cdots \times\frac{p_s-1}{p_s}
φ(n)=n×i=1∑spipi−1=n×p1p1−1×p2p2−1×⋯×psps−1
欧拉定理
若 g c d ( a , m ) = 1 gcd(a,m)=1 gcd(a,m)=1,则 a φ ( m ) ≡ 1 ( m o d m ) a^{\varphi(m)} \equiv1(mod\ m) aφ(m)≡1(mod m)
当 m m m为质数时,由于 φ ( m ) = m − 1 \varphi(m)=m-1 φ(m)=m−1,带入欧拉定理,可得到费马小定理 a m − 1 ≡ 1 ( m o d m ) a^{m-1}\equiv1(mod\ m) am−1≡1(mod m)
扩展欧拉定理
a
b
≡
{
a
b
,
b
<
φ
(
m
)
,
(
m
o
d
m
)
a
b
m
o
d
φ
(
m
)
+
φ
(
m
)
,
b
≥
φ
(
m
)
,
(
m
o
d
m
)
a^b \equiv\left\{
【模板】扩展欧拉定理
题目描述
给你三个正整数, a , m , b a,m,b a,m,b,你需要求: a b m o d m a^b \bmod m abmodm
输入格式
一行三个整数, a , m , b a,m,b a,m,b
输出格式
一个整数表示答案
样例 #1
样例输入 #1
样例输出 #1
样例 #2
样例输入 #2
样例输出 #2
提示
注意输入格式, a , m , b a,m,b a,m,b 依次代表的是底数、模数和次数
【样例
1
1
1 解释】
2
4
m
o
d
7
=
2
2^4 \bmod 7 = 2
24mod7=2
【数据范围】
对于
100
%
100\%
100% 的数据,
1
≤
a
≤
1
0
9
1\le a \le 10^9
1≤a≤109,
1
≤
b
≤
1
0
20000000
,
1
≤
m
≤
1
0
8
1\le b \le 10^{20000000},1\le m \le 10^8
1≤b≤1020000000,1≤m≤108。
1|12威尔逊定理
( p − 1 ) ! ≡ − 1 ( m o d p ) (p-1)!\equiv-1(mod\ p) (p−1)!≡−1(mod p)是 p p p为质数的充分必要条件
推论
1.若 p p p是质数,则 ( p − 1 ) ! + 1 ≡ ( m o d p ) (p-1)!+1\equiv(mod\ p) (p−1)!+1≡(mod p)
2.若 p p p是大于 4 4 4的合数,则 ( p − 1 ) ! ≡ 0 ( m o d p ) (p-1)!\equiv0(mod\ p) (p−1)!≡0(mod p)
1|13裴蜀定理
一定存在整数 x , y x,y x,y,满足 a x + b y = g c d ( a , b ) ax+by=gcd(a,b) ax+by=gcd(a,b)
推广:
一定存在整数 x , y x,y x,y,满足 a x + b y = g c d ( a , b ) × n ax+by=gcd(a,b)\times n ax+by=gcd(a,b)×n
再推广:
一定存在整数 X 1 . . . X i X_1...X_i X1...Xi,满足 ∑ i = = 1 n A i X i = g c d ( A 1 , A 2 , . . . , A n ) \sum_{i==1}^nA_iX_i=gcd(A_1,A_2,...,A_n) ∑i==1nAiXi=gcd(A1,A2,...,An)
注意:求gcd时可带入绝对值求
__EOF__

本文链接:https://www.cnblogs.com/xdeyt/p/18140588.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧