数论专题学习笔记1

1.扩展欧几里得(exgcd)

裴蜀定理:若有一个方程 a x + b y = c ax+by=c ax+by=c a , b , c a,b,c a,b,c 均为整数),当且仅当 c c c g c d ( a , b ) gcd(a,b) gcd(a,b) 的倍数, x , y x,y x,y 有整数解,且整数解的个数为无限个。

证明:
1.必要条件
p = gcd ⁡ ( a , b ) p= \gcd(a,b) p=gcd(a,b) ,那么 a = a ′ ∗ p , b = b ′ ∗ p a=a'*p,b=b'*p a=ap,b=bp ,其中 gcd ⁡ ( a ′ , b ′ ) = 1 \gcd(a',b')=1 gcd(a,b)=1
那么原方程可以转化为:
a ′ ∗ p ∗ x + b ′ ∗ p ∗ y = c a'*p*x+b'*p*y=c apx+bpy=c
更进一步:
p ∗ ( a ′ ∗ x + b ′ ∗ y ) = c p*(a'*x+b'*y)=c p(ax+by)=c
因为 c c c 为整数,所以 p p p c c c 的因子,即 c c c gcd ⁡ ( a , b ) \gcd(a,b) gcd(a,b) 的倍数,得证。

2.充分条件
先找到一组满足条件的 x , y x,y x,y
p = gcd ⁡ ( a , b ) p=\gcd(a,b) p=gcd(a,b)
很明显的,我们可以发现: gcd ⁡ ( a , b ) = gcd ⁡ ( p , 0 ) \gcd(a,b)=\gcd(p,0) gcd(a,b)=gcd(p,0)
可以发现,最好找的为:当 a = p , b = 0 a=p,b=0 a=p,b=0 时, x = c a x=\frac{c}{a} x=ac, y y y 为任意整数(通常设为 0 0 0,因为 y = 0 y=0 y=0 能使前面的 b b b 消掉,正好为原来的一组解),此时找到的 x , y x,y x,y 的解为特解,当然,特解可以通过调整 y y y 的大小进行更改。
运用辗转相除法的定理(即 gcd ⁡ ( a , b ) = gcd ⁡ ( b , a m o d    b ) \gcd(a,b)=\gcd(b,a \mod b) gcd(a,b)=gcd(b,amodb)) 可以将 a , b a,b a,b原方程变为:
b x 1 + ( a m o d    b ) y 1 = c bx1+(a \mod b)y1=c bx1+(amodb)y1=c
等式进行替换:
a x + b y = b x 1 + ( a m o d    b ) y 1 ax+by=bx1+(a \mod b)y1 ax+by=bx1+(amodb)y1
a x + b y = b x 1 + ( a − ⌊ a b ⌋ ∗ b ) y 1 = a ∗ y 1 + b ∗ ( x 1 − ⌊ a b ⌋ ∗ y 1 ) ax+by=bx1+(a-\lfloor \frac{a}{b}\rfloor *b)y1=a*y1+b*(x1-\lfloor\frac{a}{b}\rfloor*y1) ax+by=bx1+(abab)y1=ay1+b(x1bay1)
所以:
x = y 1 , y = x 1 − ⌊ a b ⌋ ∗ y 1 x=y1,y=x1-\lfloor \frac{a}{b} \rfloor*y1 x=y1,y=x1bay1
可以发现, x , y x,y x,y 均为整数,充分性得证。

通解其实就是以上的递归求出的最后的解。
求正解要将求出的通解根据当前的 c c c扩大 c / gcd ⁡ ( a , b ) c/\gcd(a,b) c/gcd(a,b) 倍(注意:不是直接扩大,而是根据扩展欧几里得扩大,不然会漏),正解就为:
X = x 0 ∗ c / gcd ⁡ ( a , b ) + k ∗ b / gcd ⁡ ( a , b ) X=x0*c/\gcd(a,b)+k*b/\gcd(a,b) X=x0c/gcd(a,b)+kb/gcd(a,b)
Y = y 0 ∗ c / gcd ⁡ ( a , b ) + k ∗ b / gcd ⁡ ( a , b ) Y=y0*c/\gcd(a,b)+k*b/\gcd(a,b) Y=y0c/gcd(a,b)+kb/gcd(a,b)
k k k 为任意整数)

2.欧拉函数

2.1定义
对于一个正整数 n n n ,将所有小于 n n n 的与 n n n 互质的个数叫做欧拉函数,记为 ϕ ( n ) \phi(n) ϕ(n) ,特别的, ϕ ( 1 ) = 1 \phi(1)=1 ϕ(1)=1

2.2性质
1. ϕ ( p ) = p − 1 \phi(p)=p-1 ϕ(p)=p1 p p p 为素数)
2. ϕ ( p k ) = p k − p k − 1 = ( p − 1 ) ∗ p k − 1 \phi(p^k)=p^{k}-p^{k-1}=(p-1)*p^{k-1} ϕ(pk)=pkpk1=(p1)pk1 p p p为素数,根据容斥原理即可算出)
3.欧拉函数为积性函数(即对于两个正整数 n , m n,m n,m,如果 gcd ⁡ ( n , m ) = 1 \gcd(n,m)=1 gcd(n,m)=1,那么 ϕ ( n ∗ m ) = ϕ ( n ) ∗ ϕ ( m ) \phi(n*m)=\phi(n)*\phi(m) ϕ(nm)=ϕ(n)ϕ(m)

根据性质,有以下定理:
ϕ ( n ) = n ∗ ∏ i = 1 r ( 1 − 1 p i ) \phi(n)=n*\prod_{i=1}^r(1-\frac{1}{p_{i}}) ϕ(n)=ni=1r(1pi1)

2.3证明
根据积性函数,我们可以将 ϕ ( n ) \phi(n) ϕ(n) 表示为:
ϕ ( n ) = ∏ i = 1 r ϕ ( p i k i ) \phi(n)=\prod_{i=1}^r\phi(p_{i}^{k_{i}}) ϕ(n)=i=1rϕ(piki)

根据性质2,可得:
ϕ ( n ) = ∏ i = 1 r ( p i − 1 ) ∗ p i k i − 1 \phi(n)=\prod_{i=1}^r(p_{i}-1)*p_{i}^{k_{i}-1} ϕ(n)=i=1r(pi1)piki1

变一下形式:
ϕ ( n ) = ∏ i = 1 r ( 1 − 1 p i ) ∗ p i k i \phi(n)=\prod_{i=1}^r(1-\frac{1}{p_{i}})*p_{i}^{k_{i}} ϕ(n)=i=1r(1pi1)piki

最后化简结果便为上述的式子。
所以求欧拉函数的方法为求出所有的质因数,时间复杂度为 O ( n ) O(\sqrt{n}) O(n )

3.费马小定理

3.1定义
对于一个整数 a a a ,一个素数 p p p ,若 gcd ⁡ ( a , p ) = 1 \gcd(a,p)=1 gcd(a,p)=1,那么:
a p − 1 ≡ 1 ( m o d    p ) a^{p-1} \equiv 1(\mod p) ap11(modp)

3.2证明
我们可以发现, 1 1 1 p − 1 p-1 p1 所有的数都和 p p p 互质
因为 gcd ⁡ ( a , p ) = 1 \gcd(a,p)=1 gcd(a,p)=1 ,所以 gcd ⁡ ( 2 ∗ a , p ) = 1 \gcd(2*a,p)=1 gcd(2a,p)=1 ……… gcd ⁡ ( ( p − 1 ) ∗ a , p ) = 1 \gcd((p-1)*a,p)=1 gcd((p1)a,p)=1
我们假设有 i , j i,j i,j符合 a ∗ i ≡ a ∗ j ( m o d    p ) a*i \equiv a*j (\mod p) aiaj(modp) 那么就表示 i = j i=j i=j ,明显不符合。所以所有的 a ∗ i m o d    p a*i \mod p aimodp 的集合为 ( 1 , 2 , . . . , ( p − 1 ) ) (1,2,...,(p-1)) (1,2,...,(p1))
那么就有:
a ∗ ( a ∗ 2 ) ∗ . . . ∗ ( p − 1 ) ∗ a ≡ 1 ∗ 2 ∗ . . . ∗ ( p − 1 ) ( m o d    p ) a*(a*2)*...*(p-1)*a \equiv 1*2*...*(p-1) (\mod p) a(a2)...(p1)a12...(p1)(modp)
变一下形式:
a p − 1 ∗ 1 ∗ 2 ∗ . . . ∗ ( p − 1 ) ≡ 1 ∗ 2 ∗ . . . ∗ ( p − 1 ) ( m o d    p ) a^{p-1}*1*2*...*(p-1) \equiv 1*2*...*(p-1)(\mod p) ap112...(p1)12...(p1)(modp)

因为 1 ∗ 2 ∗ . . . ∗ ( p − 1 ) 1*2*...*(p-1) 12...(p1) p p p 是互质的 ,所以两边的 1 ∗ 2 ∗ . . . ∗ ( p − 1 ) 1*2*...*(p-1) 12...(p1)可以消去:
a p − 1 ≡ 1 ( m o d    p ) a^{p-1} \equiv 1(\mod p) ap11(modp)
即为费马小定理。

3.3应用
可以发现,当有 a , p a,p a,p 满足 a a a 为整数, p p p 为素数 ,且 gcd ⁡ ( a , p ) = 1 \gcd(a,p)=1 gcd(a,p)=1 时,有以下恒等式:
a b ≡ a b m o d    ( p − 1 ) ( m o d    p ) a^b \equiv a^{b \mod (p-1)}(\mod p) ababmod(p1)(modp)

4.欧拉定理 (扩展费马小定理)

4.1定义
对于整数 a , p a,p a,p gcd ⁡ ( a , p ) = 1 \gcd(a,p)=1 gcd(a,p)=1,有:
a ϕ ( p ) ≡ 1 ( m o d    p ) a^{\phi(p)} \equiv 1 (\mod p) aϕ(p)1(modp)

4.2证明
与费马小定理的证明类似。
我们设 ( P 1 . . . P ϕ ( p ) ) (P_{1}...P_{\phi(p)}) (P1...Pϕ(p))为与 p p p 互质的所有数。
那么对于每个 P i , P j P_{i},P_{j} Pi,Pj i , j i,j i,j 互不相等) , a ∗ P i m o d    p a * P_{i} \mod p aPimodp a ∗ P j m o d    p a * P_{j} \mod p aPjmodp 互不相等。(原理类似与费马小定理的证明)。

因为对于每一个 a ∗ P i a*P_{i} aPi 所模出来的数不可能是 p p p 的因子,所以模之后集合就为 { P 1 . . . P ϕ ( p ) P_{1}...P{\phi(p)} P1...Pϕ(p)},所以:

a ∗ a ∗ P 1 ∗ . . . ∗ a ∗ P ϕ ( p ) ≡ P 1 ∗ . . . ∗ P ϕ ( p ) ( m o d    p ) a*a*P_{1}*...*a*P_{\phi(p)} \equiv P_{1}*...*P_{\phi(p)} (\mod p) aaP1...aPϕ(p)P1...Pϕ(p)(modp)

即:

a ϕ ( p ) ∗ ( P 1 ∗ . . . ∗ P ϕ ( p ) ) ≡ P 1 ∗ . . . ∗ P ϕ ( p ) ( m o d    p ) a^{\phi(p)}*(P_{1}*...*P_{\phi(p)}) \equiv P_{1}*...*P_{\phi(p)}(\mod p) aϕ(p)(P1...Pϕ(p))P1...Pϕ(p)(modp)

因为 P 1 ∗ . . . ∗ P ϕ ( p ) P_{1}*...*P_{\phi(p)} P1...Pϕ(p) p p p 互质,那么两边同时消掉,得:

a ϕ ( p ) ≡ 1 ( m o d    p ) a^{\phi(p)} \equiv 1 (\mod p) aϕ(p)1(modp)

以上为欧拉定理的证明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值