数论(loading)
数论
数论
欧拉定理、费马小定理
欧拉函数(小于或等于n的正整数中与n互质的数的数目):
φ
(
x
)
=
x
∏
i
=
1
n
1
−
1
p
i
(
其
中
p
1
,
p
2
.
.
.
p
n
为
x
的
所
有
质
因
数
,
x
为
不
为
0
的
整
数
)
定
义
φ
(
1
)
=
1
\varphi(x)=x \prod_{i=1}^n{1- {1\over {p_i}}}(其中p_1,p_2...p_n为x的所有质因数,x为不为0的整数)\定义\varphi(1)=1
φ(x)=x∏i=1n1−pi1(其中p1,p2...pn为x的所有质因数,x为不为0的整数)定义φ(1)=1
a φ ( m ) ≡ 1 ( m o d m ) ( g c d ( a . m ) = 1 ) a^{\varphi(m)}\equiv 1(mod\ m)(gcd(a.m)=1) aφ(m)≡1(mod m)(gcd(a.m)=1)当m为质数p且x不是p的倍数时即为费马小定理 x p − 1 ≡ 1 ( m o d p ) x^{p-1} \equiv1(mod\ p) xp−1≡1(mod p)
欧拉函数得出
威尔逊定理
当 且 仅 当 p 为 素 数 时 : ( p − 1 ) ! ≡ − 1 ( m o d p ) 当且仅当p为素数时:(p -1)! ≡ -1 ( mod p ) 当且仅当p为素数时:(p−1)!≡−1(modp)
卢卡斯定理及其扩展
C m n m o d p = C m p n p C ( m m o d p ) ( n m o d p ) m o d p ( p 为 素 数 ) C_m^n \ mod \ p = C_{\frac{m}{p}}^{\frac{n}{p}}C_{(m \ mod \ p)}^{(n \ mod \ p)} \ mod \ p(p为素数) Cmn mod p=CpmpnC(m mod p)(n mod p) mod p(p为素数)
欧几里得定理及其扩展
欧几里得定理
g c d ( a , b ) = g c d ( b , a % b ) gcd(a,b)=gcd(b,a\%b) gcd(a,b)=gcd(b,a%b)
欧几里得扩展
a x + b y = g c d ( a , b ) = d ax+by=gcd(a,b)=d ax+by=gcd(a,b)=d在已知 a , b a,b a,b的情况下,求出一组解 x , y x,y x,y
a % b = a − a / b ∗ b a\%b=a-a/b*b a%b=a−a/b∗b
解法:
d
=
g
c
d
(
a
,
b
)
=
g
c
d
(
b
,
a
%
b
)
=
a
x
+
b
y
=
b
x
1
+
(
a
−
a
/
b
∗
b
)
y
1
b
x
1
+
(
a
−
a
/
b
∗
b
)
y
1
=
b
x
1
+
a
y
1
−
(
a
/
b
)
b
y
1
=
a
y
1
+
b
(
x
1
−
a
/
b
y
1
)
可 得 x = y 1 , y = ( x 1 − a / b y 1 ) 可得 x=y_1,y=(x_1-a/by_1) 可得x=y1,y=(x1−a/by1)
结论:
由欧几里得扩展得到一组特解 ( x 0 , y 0 ) (x_0,y_0) (x0,y0),那么有 a x 0 + b y 0 = d ax_0+by_0=d ax0+by0=d
方程通解为 x = x 0 + k ( b / d ) , y = y 0 − k ( a / d ) ( k 为 任 意 整 数 ) x=x_0+k(b/d),y=y_0-k(a/d)(k为任意整数) x=x0+k(b/d),y=y0−k(a/d)(k为任意整数)
那么 a x + b y = c ax+by=c ax+by=c仅当 d ∣ c d|c d∣c时有解,且解为 x = ( c / d ) x 0 + k ( b / d ) , y = ( c / d ) y 0 − k ( a / d ) x=(c/d)x_0+k(b/d),y=(c/d)y_0-k(a/d) x=(c/d)x0+k(b/d),y=(c/d)y0−k(a/d)
线性同余方程
a x ≡ b ( m o d n ) ax≡b (mod \ n) ax≡b(mod n)
性 质 : d = g c d ( a , n ) , 若 d ∣ b , 则 方 程 恰 好 有 d 个 模 n 不 同 余 的 解 , 否 则 方 程 无 解 若 x 0 是 方 程 的 任 一 解 , 则 该 方 程 对 模 n 有 d 个 不 同 的 解 , 分 别 为 x i = x 0 + k ( b / d ) , ( k = 0 , 1 , 2 , … , d − 1 ) 性质:d=gcd(a,n),若d|b,则方程恰好有d个模n不同余的解,否则方程无解\ 若x_0是方程的任一解,则该方程对模n有d个不同的解,分别为x_i=x_0+k(b/d),(k=0,1,2,…,d-1) 性质:d=gcd(a,n),若d∣b,则方程恰好有d个模n不同余的解,否则方程无解若x0是方程的任一解,则该方程对模n有d个不同的解,分别为xi=x0+k(b/d),(k=0,1,2,…,d−1)
解 法 : a x 0 + n y 0 = d , 利 用 扩 展 欧 几 里 得 求 出 一 组 特 解 ( x 0 , y 0 ) 然 后 , x = x 0 ( b / d ) % n 就 是 原 方 程 的 一 个 解 , 且 其 有 d 个 不 同 的 解 , 为 x i = ( x + k ( b / d ) ) % n , 0 < = k < d 解法:ax_0+ny_0=d,利用扩展欧几里得求出一组特解(x_0,y_0) 然后,x=x_0(b/d)\%n就是原方程的一个解,\且其有d个不同的解,为x_i=(x+k(b/d))\%n,0<=k< d 解法:ax0+ny0=d,利用扩展欧几里得求出一组特解(x0,y0)然后,x=x0(b/d)%n就是原方程的一个解,且其有d个不同的解,为xi=(x+k(b/d))%n,0<=k<d
中国剩余定理
x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) . . . x ≡ a n ( m o d m n ) x\equiv a_1(mod\ m_1)\ x\equiv a_2(mod\ m_2)\ ...\ x\equiv a_n(mod\ m_n)\ x≡a1(mod m1)x≡a2(mod m2)...x≡an(mod mn)
mi互质时
M = ∏ i = 1 n , M i = M m i , t i M i ≡ 1 ( m o d m i ) M=\prod_{i=1}^n,M_i=\frac{M}{m_i},t_iM_i\equiv1(mod\ m_i) M=∏i=1n,Mi=miM,tiMi≡1(mod mi)
x = k M + ∑ i = 1 n a i t i M i x=kM+\sum_{i=1}^na_it_iM_i x=kM+∑i=1naitiMi
mi不互质时
假设已求出前 k − 1 k-1 k−1个方程的解 x k − 1 x_{k-1} xk−1,设 M = L C M ( m i ) M=LCM(m_i) M=LCM(mi)
前 k − 1 k-1 k−1个方程满足 x k − 1 + t M ≡ a i ( m o d m i ) x_{k-1}+tM \equiv a_i(mod \ m_i) xk−1+tM≡ai(mod mi),即通解为 x = x k − 1 + t M x=x_{k-1}+tM x=xk−1+tM
求解第 k k k个方程则令 x k = x k − 1 + t M x_k=x_{k-1}+tM xk=xk−1+tM,代入可得 x k − 1 + t M ≡ a k ( m o d m k ) x_{k-1}+tM \equiv a_k(mod \ m_k) xk−1+tM≡ak(mod mk)
即 t M ≡ a k − x k − 1 ( m o d m k ) tM \equiv a_k -x_{k-1}(mod \ m_k) tM≡ak−xk−1(mod mk)
所以可以通过 e x g c d exgcd exgcd得到 t t t的值,然后得出 x k x_k xk的值
乘法逆元
若 a x ≡ 1 ( m o d n ) ax \equiv 1(mod \ n) ax≡1(mod n)则称 x x x是 m o d n mod \ n mod n意义下 a a a的乘法逆元,记 x = i n v ( a ) x=inv(a) x=inv(a)或 x = a − 1 x=a^{-1} x=a−1
可由欧拉定理,费马小定理,欧几里得扩展得逆元。
二次同余方程
x 2 ≡ n ( m o d p ) x^2 \equiv n(mod \ p) x2≡n(mod p),即 x 2 = n + k p x^2=n+kp x2=n+kp( p p p是奇质数)
用法: x 2 ≡ n ( m o d p ) → x ≡ n ( m o d p ) x^2 \equiv n(mod \ p)\rightarrow x \equiv \sqrt n (mod \ p) x2≡n(mod p)→x≡n(mod p),即若二次同余方程有解,n可以在 m o d p mod \ p mod p的意义下开根号。
引理: n p − 1 2 ≡ ± 1 ( m o d p ) n^{\frac{p-1}{2}}\equiv \pm 1(mod \ p) n2p−1≡±1(mod p)可由费马小定理经由平方差公式得到
勒让德符号: n p − 1 2 m o d p n^{\frac{p-1}{2} }mod \ p n2p−1mod p
若 n p − 1 2 ≡ 1 ( m o d p ) n^{\frac{p-1}{2}}\equiv 1(mod \ p) n2p−1≡1(mod p),则二次同余方程有解
找到一个 a a a满足 w = a 2 − n w=a^2-n w=a2−n为一个模 p p p的非二次剩余
得到 ( a + w ) p ≡ a p + w p − 1 2 w ≡ a − w ( m o d p ) (a+\sqrt w)^p \equiv a^p+w^{\frac{p-1}{2}}\sqrt {w} \equiv a-\sqrt w(mod \ p) (a+w)p≡ap+w2p−1w≡a−w(mod p)
所以
(
a
+
w
)
p
+
1
≡
(
a
+
w
)
p
(
a
+
w
)
≡
(
a
−
w
)
(
a
+
w
)
≡
a
2
−
w
≡
n
(
m
o
d
p
)
这里定义一个类似复数域的二次域,其中
i
2
=
a
2
−
n
=
w
i^2=a^2-n=w
i2=a2−n=w
素数
反素数
任何小于 n n n的正数的约数个数都小于 n n n的约数个数,称 n n n为反素数。
由其特性可知, n = p 1 k 1 p 2 k 2 . . . p n k n n=p_1^{k_1}p_2^{k_2}...p_n^{k_n} n=p1k1p2k2...pnkn, p 1 = 2 , 且 k 1 ≥ k 2 ≥ k 3 ≥ . . . ≥ k n p_1=2,且k_1 \geq k_2 \geq k3 \geq ... \geq k_n p1=2,且k1≥k2≥k3≥...≥kn
极端情况为 n = p 1 p 2 . . . p n n=p_1p_2...p_n n=p1p2...pn,枚举到最大 n n n的 p n p_n pn即可,最多枚举到 n = 2 k n=2^k n=2k,k次即可。
具体实现:
- 当前走到的数字已经大于我们想要的数字了
- 当前因子大于我们想要的因子了
- 当前因子正好是我们想要的因子(此时判断是否需要更新最小 )
然后 dfs 里面不断一层一层枚举次数继续往下迭代
欧拉筛
素性测试
Miller Rabin:
__EOF__

本文链接:https://www.cnblogs.com/waby/p/15857128.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】