第一章 整数的可除性
定义
b∣a : b整除a,a可以被b整除,a是b的倍数,b是a的因子。
素数:除了平凡因子外无其他因子的数
(a,b) :a,b的最大公因数,如果最大公因数为1则称两数互素或互质
[a,b] :a,b的最小公倍数
定理
-
如果 p>1 是合数n的因数最小的,则p一定是素数,且 p≤n ,进而,如果所有素数 p≤n 都不能整除n则n为素数
找出小于n的所有素数:删去所有素数 p≤n 小于n的倍数(除了1倍数),剩下的就是小于n的所有素数
-
欧几里得除法(带余除法): a∈Z,b∈Z+,∃(q,r),s.t.a=bq+r,0≤r<b
绝对值最小余数:−2b≤r<2b
b进制转化为十进制:n=akbk+ak−1bk−1+...+a1b+a0 ;
十进制转化为b进制:a=q1b+r1;q1=q2b+r2;q2=q3b+r3;⋯qn=0×b+rn;n=(rn⋯r3r2r1)b
-
a=bq+c⇒(a,b)=(b,c)
(a,b)=(a,ax+b)=(a+bx,b) , x为整数
辗转相除法:(a,b)=(b,r2)=(r2,r3)=(r3,r4)=...=(rn−2,rn−1)=(rn−1,rn)=rn
(2a−1,2b−1)=2(a,b)−1
-
∀a,b∈Z+,∃s,t∈Z,s.t.s⋅a+t⋅b=(a,b)
如果a,b互素,则 ∃s,t∈Z,s.t.,s⋅a+t⋅b=1
d=(a,b)⇔(d∣a,d∣b)∧(e∣a,e∣b⇒e∣d)
∀m∈Z+,(am,bm)=(a,b)m⇒((x,y)x,(x,y)y)=1
(a,c)=1⇒(ab,c)=(b,c) , 进而,如果 (a1,c)=(a2,c)=...=(an,c)=1 ,则 (a1a2...an,c)=1
-
n=p1α1p2α2⋯psαs,(α1,α2,...,αs∈Z+,p1≤p2≤p3≤...≤ps) ,其中p均为素数,且该分解式是唯一的
n的因数个数为 (1+α1)⋅(1+α2)⋅...⋅(1+αs)
a,b的最大公因数为 (a,b)=p1min(α1,β1)⋅p2min(α2,β2)⋅...⋅psmin(αs,βs)
n∣ab,(n,a)=1,n∣b , 特别地,p∣(a1a2...an) , p为素数, 则要么 p∣a1 ,要么 p∣a2 ,……,要么 p∣an
-
若a,b均为正素数,则 [a,b]=ab
-
[a,b]=(a,b)ab
-
m是a,b的公倍数,则 [a,b]∣m
-
[a,b]=p1max(α1,β1)⋅p2max(α2,β2)⋅...⋅psmax(αs,βs)
性质
c∣b,b∣a⇒c∣a
c∣a,c∣b⇒c∣(sa±tb) , 进而,c∣a,c∣b,xa+yb=1⇒c=±1
a∣b,b∣a⇒a=±b
第二章 同余
定义
m∣(a−b) 则称a与b模m同余,记作 a≡b(modm) , 可以表示a除以m的余数为b(但b不一定是最小非负余数),也可以表示a,b除以m余数相同
剩余类:Ca={c∣c≡amodm,c∈Z} , a=0,1,2…m−1
完全剩余系:不同剩余类中的代表元组成的集合,例如,r0∈C0,r1∈C1,...,rm−1∈Cm−1, 则称 {r0,r1,...,rm−1} 为一个完全剩余系,它们模m两两不同余
完全剩余系可写成 Z/mZ={C0,C1,C2,...,Cm−1} , 定义剩余类之间存在加法、乘法运算:Ca⊕Cb:=Ca+b,Ca⊙Cb:=Cab , 其原理为 a(modm)+b(modm)=(a+b)(modm),a(modm)⋅b(modm)=(ab)(modm)
简化剩余类:存在元素与m互素(实际上所有元素都与m互素)的类。φ(m) 为m的简化剩余类数,数值上等于小于m与m互素的数的个数,特别地,对于素数p而言 φ(p)=p−1
简化剩余系:在简化剩余类中各取一个元素组成的集合。简化剩余系可写成 (Z/mZ)∗={Ca∣0≤a≤m,(a,m)=1}
定理
- a1≡b1modm,a2≡b2modm⇒(a1±a2)≡(b1±b2)modm
- a1≡b1modm,a2≡b2modm⇒(a1⋅a2)≡(b1⋅b2)modm , 特别地,∀0≤i∈Z,a≡bmodm=⇒ai≡bimodm
注意:ad≡bd(modm) 不能推出 a≡bmodm , (但 (d,m)=1 的情况可以成立)
- x≡ymodm,a0≡b0modm,a1≡b1modm,...,ak≡bkmodm=⇒(a0+a1x+a2x2+...+akxk)≡(b0+b1y+b2y2+...+bkyk)modm
n为十进制数 n=(akak−1...a2a1a0)10 , 则 n≡(ak+ak−1+...+a2+a1+a0)mod3
n为一千进制数 n=(akak−1...a2a1a0)1000 , 则 n≡(a0+a2+a4+...)−(a1+a3+a5+...)mod7
- a≡bmodm1a≡bmodm2}⇒a≡bmod[m1,m2]
- (a,m)=1,b∈Z ,当 x 取遍模m的一个完全剩余系时,ax+b 也取遍模m的一个完全剩余系
- (m1,m2)=1 , 当 x1 取遍模 m1 的一个完全(简化)剩余系时,x2 取遍模 m2 的一个完全(简化)剩余系时,m1x2+m2x1 取遍模 m1m2 的一个完全(简化)剩余系
- (a,m)=1 ,当 x 取遍模m的一个简化剩余系时, ax 也取遍模m的一个简化剩余系
- (a,m)=1,∃a0∈Z,1≤a0<m,s.t.aa0≡1modm
- Wilson定理:p是素数,则 (p−1)!≡−1modp
- 欧拉函数:φ(pα)=pα−pα−1=pα(1−p1) , (m,n)=1⇒φ(mn)=φ(m)φ(n)
- n∈Z+,∑d∣nφ(d)=n
- 欧拉定理:1<m∈Z,(a,m)=1⇒aφ(m)≡1modm
费马小定理:ap≡amodp ,其中p为素数
性质
自反性:a≡amodm
对称性:a≡bmodm⇒b≡amodm
传递性:a≡bmodm,b≡cmodm⇒a≡cmodm
第三章 同余方程
定义
模m的同余式:f(x)=anxn+an−1xn−1+⋅⋅⋅+a1x+a0≡0modm 若a是该方程的一个解,则a所在的剩余类中的任意元素均满足该同余式,因此把解记作 x≡amodm
同余式的解数:满足同余式的模m的剩余类的个数
逆元:若 aa0≡1modm ,则称 a0 为模m的可逆元或乘法逆,当 (a,m)=1 时 a0 唯一 , 因此,a是m的简化剩余等价于a是m的可逆元
同余方程组:⎩⎨⎧f1(x)=0modm1f2(x)=0modm2⋮fk(x)=0modmk 若a是该方程组的一个解,则a所在的剩余类中的任意元素均满足该同余方程组,令 m=[m1,m2,...,mk] ,把解记作 x≡amodm
同余方程组的解数:满足同余方程组的模m的剩余类的个数
同余恒等式:h(x)≡0modm 对于任意整数都成立,例如 xp−x≡0modp p为素数
一次同余方程
- ax≡bmodm 有解,且 m∣a,d=(a,m)⇔d∣b ,解数必为d
求解一次同余方程步骤:
d=(a,m)⇒{d∣b,noanswerd∣b⇒da,dm,db⇒finds,s.t.da⋅s≡1moddm⇒x≡s⋅dbmoddm⇒x=s⋅db+k⋅dm,k=0,1,2…d−1
由此可知,ax≡1modm 有唯一解当且仅当 (a,m)=1 ,且解为 x≡s⋅bmodm
其中,s用可逆元的形式可表示为 s=(da)−1moddm
一次同余方程组
⎩⎨⎧x≡b1modm1x=b2modm2⋮x=bkmodmk,(m1,m2…mk)=1⇒x=M1M1′b1+M2M2′b2+…MkMk′bkmodm,m=m1m2m3…mk,Mi=mim,MiMi′=1modmi
且该解唯一
若 p、q互素,n=pq ,要求 xcmodn 可以先求解 {y≡b1modpy≡b2modq 这也为 mi 不互素提供了解决方案
若 b1,b2…bk 分别遍历 m1,m2…mk 的完全剩余系,则 x≡M0′M1b1+M2′M2b2+...+Mk′Mkbkmodm 遍历m的完全剩余系;相反的,存在唯一的一组整数 b1,b2…bk 使得 M0′M1b1+M2′M2b2+...+Mk′Mkbk≡bmodm , 进一步 (b,m)=1⇔(bi,mi)=1
高次同余方程
同余方程的规约:
- f(x)≡0modm⇔f(x)+ms(x)≡0modm
- f(x)≡0modm⇔f(x)+s(x)≡s(x)modm
- (a,m)=1,af(x)≡0modm⇔f(x)≡0modm ,则有 anxn+an−1xn−1+...+a1x+a0≡0modm⇔xn+an−1an−1xn−1+...+an−1a1x+an−1a0≡0modm (此处也可看作同时乘以anmodm 的乘法逆)
- 如果有同余恒等式h(x),整系数多项式q(x)使得 f(x)=q(x)h(x)+r(x) 成立,则 f(x)≡0modm⇔r(x)≡0modm q(x)可通过欧几里得多项式除法得到
- 设d为m的正因子,则 f(x)≡0modm 有解的必要条件是 f(x)≡0modd 有解
高次同余方程解的个数:
-
当 m1,m2…mk 两两互素,m=m1m2…mk 时, f(x)≡0modm⇔⎩⎨⎧f(x)≡0modm1f(x)≡0modm2⋮f(x)≡0modmk
对方程组的每个方程单独求解,可以得到 ⎩⎨⎧x≡b1modm1x≡b2modm2⋮x≡bkmodmk 再根据中国剩余定理, 解可以写成 x=M1M1′b1+M2M2′b2+…MkMk′bkmodm 的形式。
因此解的个数为 T=T1T2…Tk Ti 即为方程组中每个方程解的个数
-
如果 x≡c1,c2,c3,...,ckmodp 是同余方程 f(x)≡0modp 的k个不同解,则有 f(x)≡(x−c1)(x−c2)(x−c3)...(x−ck)fk(x)modp. 解数 k≤min(p,n) 。特例:当f(x)次数小于p的同余方程 f(x)≡0modp 有p个解则都p整除f(x)每项系数
-
若系数为1 f(x)=xn+an−1xn−1+...+a2x2+a1x+a0,n≤p,xp−x=f(x)q(x)+r(x) , 同余方程 f(x)≡0modp 有n个解当且仅当r(x)的系数均为p的倍数
求解模为素数幂的同余方程:
f(x)≡0modpα , p为素数
原理: f(a)≡0modpα⇒f(a)≡0modpα−1f(c)≡0modpα−1}⇒a≡cmodpα−1⇒a=kpα−1+c
求解k:解一次同余方程 f′(c)⋅k≡pα−1−f(c)modp
⎩⎨⎧d=(f′(c),p)=1,onlyonesolutiond=(f′(c),p)=p{p∣pα−1−f(c),nosolutionp∣pα−1−f(c),psolutions,k=0,1,2…,p−1
由此算法,可从 f(x)≡0modp 的解递推至 f(x)≡0modpα 的解
第四章 二次剩余
定义
二次剩余(平方剩余):设素数p>2, x2≡amodp 有解,则称a是一个模p的二次剩余,否则称a为一个模p的二次非剩余。一般来说,x≡0modp 两者都不属于。
勒让德符号(只有p为素数时才有意义):(pa)=⎩⎨⎧1⇒aisthesquareremaindermodulop−1⇒aisasquarenon−residuemodulop0⇒p∣a
雅可比符号:(ma)=(p1a)⋅(p2a)⋅⋯⋅(pna) ,其中 (pia) 为勒让德符号,m=p1p2…pn ,
二次同余方程解的存在性
- p为奇素数,p的简化剩余系中恰有 2p−1 个二次剩余,2p−1 个二次非剩余,如果a是模p的二次剩余,则 x2≡amodp 解数为2。
- p为奇素数,(a,p)=1 ,a是模p的平方剩余 ⇔a2p−1≡1modp , a是模p的平方非剩余 ⇔a2p−1≡−1modp
勒让德符号
- p为奇素数,a2p−1≡(pa)modp
- 性质:
(pa+kp)≡(pa)
a≡bmodp⇒(pa)=(pb)
(pab)=(pa)(pb)
(a,p)=1⇒(pa2)=1
(p1)=1 , (p−1)=(−1)2p−1
(p2)=(−1)8p2−1
- 高斯引理:p为奇素数,(a,p)=1 , a⋅1,a⋅2,…,a⋅2p−1 模p后最小正剩余大于 2p 的个数是m,则 (pa)=(−1)m
- 二次互反律:若p,q均为奇素数,则 (qp)=(−1)2p−12q−1(pq)
雅可比符号
- 性质:
(m,n)>1,(nm)=(mn)=0
(ma+km)=(ma)
(mab)=(ma)(mb)
(a,m)=1,(ma2)=1
(m1)=1 , (m−1)=(−1)2m−1
(m2)=(−1)8m2−1
- 二次互反律:若m,n均为奇素数的乘积,且 (m,n)=1 ,则 (nm)=(−1)2m−12n−1(mn)
- 注意:(mn)=1⇒x2≡nmodm 有解
二次同余方程求解
模素数p
- p=4k+3:x≡±ak+1modp=±a4p+1modp
- 求解 x2≡amodp (p为素数)通用方法:
- 判断勒让德符号 (pa) 是否等于1来判断是否有解
- p−1=2t⋅s , 求出t,s, a−1
- 取模p的一个平方非剩余n,计算 b=nsmodp
- i=1,2,…,t,代入以下循环,直到i=t,可求得两个解 x=±x0
y2t−i≡1modp⎩⎨⎧i=1⇒xt−1=a2s+1⇒a−1xt−1i=1⇒(a−1xt−i+1)2t−i={1modp⇒xt−i=xt−i+1⇒a−1xt−i−1modp⇒xt−i=xt−i+1b2i−2⇒a−1xt−i
模奇素数幂
详见第三章
模2的幂
x2≡amod2δ
{δ=2→2solutions:±1δ≥3→onlywhena≡1mod8has4solutions→x4=±(1+22t3)satisfiesx2≡amod24→t3≡8a−1mod2→x5=±(x4+23t4)satisfiesx2≡amod25→t4≡24a−x42mod2→⋯→x=±(xδ+2δ−1tδ)(tδ−1=0,1,2…)
其中,ti≡2ia−xi2mod2
模合数m
结合第二、三种情况
第五章 原根与指标
定义
指数:as≡1modm a,m互素,e为s的最小值,称为a对模m的指数,记为 ordm(a)
原根:如果 ordm(a)=φ(m) ,则称a为m的原根
指标:g是模p的原根,a是模p的一个简化剩余系,gr≡amodp ,称r为以g为底a对模p的指标,记为 indga 或 inda
指数的性质与定理
- a,m互素,ad≡1modm⇔ordm(a)∣d 因此,必有 ordm(a)∣φ(m)
为了求a的指数可以直接在 φ(m) 的因子里找
- a,m互素,n∣m⇒ordn(a)∣ordm(a)
- a,m互素,b≡amodm⇒ordm(b)=ordm(a)
- a,m互素 ab≡1modm⇒ordm(a)=ordm(b)
- 当a是m的原根时,a0,a1…aφ(m)−1 是m的一个简化剩余系
- ak≡almodm⇔k≡lmodordm(a)
- a,m互素 ,m>1, k≥0 ,ordm(ak)=(ordm(a),k)ordm(a)
推论:当a是m的原根时,若 (k,ordm(a))=1 ,则 ak 也是m的原根,即从m的简化剩余系中随机取一个数是模m原根的概率是 φ(m)φ(ordm(a))=φ(m)φ(φ(m))
- ordm(ab)=ordm(a)⋅ordm(b)⇔(ordm(a),ordm(b))=1 ;若 (ordm(a),ordm(b))=1 ,则存在c,ordm(c)=[ordm(a),ordm(b)]
- a,m,n两两互素,ordmn(a)=[ordm(a),ordn(a)] ;当a=b 时,a,b与mn互素,ordmn(c)=[ordm(a),ordn(b)]
推论:a,m互素,m=2α1p2α2p3α3...psαs , ordm(a)=[ord2α1(a),ordp2α2(a),...,ordpsαs(a)]
- ord2l(a)∣2l−2(l≥3) ,结合上一条定理,ordm(a)∣[2α1−2,φ(p2α2),φ(p3α3),...,φ(psαs)]
- p是奇素数,m存在原根 ⇔m=1/2/4/pα/2pα
模素数p的原根
- 设p为奇素数,q1,q2,...,qs 是p-1的所有素因数,g是模p的原根当且仅当 gqip−1=1(modp),i=1,2,...,s
- 若g为 pα+1 的原根,则g必为 pα 的原根
- 若g为模 pα 的原根,则必有 ordpα+1(g)=φ(pα) 或 ordpα+1(g)=φ(pα+1)
- g是模奇素数p的原根,且g满足 gp−1≡1+rp(p∣r) ,则g是模 pα 的原根
- 设 g′ 是模奇素数p的原根,则 g=g′,g=g′+p,g=g′+2p,…g=g′+(p−1)p 都是模p的原根,且只有一个不满足条件 gp−1≡1+rp(p∣r) ,其余都满足
指标
前提:g是模p的原根,a是模p的一个简化剩余系
- gs≡amodm⇒s≡indgamodφ(m)
- indg(a1...an)≡indga1+...+indganmodφ(m)
- φ(m)=(φ(m),indga)⋅ordm(a) ,由此推论,若a是模m的原根,则 (φ(m),indga)=1
- 模m的简化剩余系中,指数等于e的整数个数就是 φ(e)
- xn≡amodm 有解 ⇔(n,φ(m))∣indga ,有解的话解数为 (n,φ(m)) ,进一步地,a是模m的n次剩余 ⇔a(n,φ(m))φ(m)≡1modm
第六章 素性检验
定义
伪素数:设n是一个合数,如果存在与n互素的数b,bn−1≡1modn 则称n为基于b的伪素数
卡米切尔数:n是一个合数,但对n简化剩余系中的所有数,都有 bn−1≡1modn
Euler伪素数:n是一个合数,存在与n互素的数b使得 b2n−1≡(nb)modn ,称n是基b的Euler伪素数
强伪素数:n是一个合数,存在与n互素的数b满足 bn−1−1=b2st−1=(bt−1)(bt+1)(b2t+1)(b22t+1)…(b2s−1t+1)≡0modn 存在一个括号内等于0,称n是基b的强伪素数
伪素数
- 存在无穷多个基于2的伪素数
- 设n是一个奇合数,则n是基于b的伪素数 ⇔ordn(b)∣n−1
- 设n是一个奇合数,n是一个基a的伪素数,基b的伪素数,则n是对于基ab的伪素数
- 设n是一个奇合数,n是一个基b的伪素数,则n也是基b^{-1}的伪素数
- bi 属于模n的简化剩余系,则有 ≥21 的概率使得 bin−1=1modn
Euler伪素数
- n是基b的Euler伪素数可以推出n为基于b的伪素数,反之不然
强伪素数
- 存在无穷多个基2的强伪素数
- n是基b的强伪素数,则n是基b的Euler伪素数,则n是基b的伪素数
- n是合数,则随机选取与n互素的b,n是基b的强伪素数的概率至多为 41
- 强伪素数的检验方法可以检验出卡米切尔数为合数
第七章 连分数
定义
有限简单连分数:x0+x1+x2+⋱xi−1+xi1111 ,x0 是整数,x1,x2…xi 是正整数。可以记为 [x0,x1…xi]
第k个渐进分数:[x0,x1…xk]=QkPk
无限简单连分数:[x0,x1…xn−1,…],若 limk→∞[x0,x1…xk]=θ 则称收敛,若不存在极限则称发散。
例如,2=[1,2,2,2…] ,是收敛的。
n阶连分数:n条分数线
纯循环连分数:类似 25+1=[1,1,1…]=[1] ,刚开始就循环
实二次无理数:α=r+sd r,s(s不为0)为有理数,d为非平方数,则 α 为实二次无理数
有理分数的简单连分数表示
- qp=[⌊qp⌋,⌊r0q⌋,⌊r1r0⌋…⌊rkrk−1⌋],rk+1=0
- 有理分数的简单连分数表示是唯一的
有限连分数
- 嵌套:[x0,x1,…xn,xn+1,xn+2…xn+r]=[x0,x1,…xn,[xn+1,xn+2…xn+r]]=[x0,x1,…xn,xn+1+[xn+2…xn+r]1]
- 偶数阶连分数加t(或t阶)递增
- 奇数阶连分数加t(或t阶)递减
- θn∈[θ0,θ1]
- 对第n个渐进分数 QnPn , 满足 Pn=⎩⎨⎧xnPn−1+Pn−2,n≥01,n=−10,n=−2 , Qn=⎩⎨⎧xnQn−1+Qn−2,n≥00,n=−11,n=−2
- 对第n个渐进分数 QnPn , 满足 PnQn−1−Pn−1Qn=(−1)n+1
- 对第n个渐进分数 QnPn , 满足 PnQn−2−Pn−2Qn=(−1)nxn
- Q0P0<⋯<Q2n−2P2n−2<Q2nP2n<⋯<P2n+1P2n+1<Q2n−1P2n−1⋯<Q1P1
无限连分数
- 无限简单连分数一定是收敛的
- θ 是循环简单分数 ⇔ θ 是实二次无理数
- 连分数的因式分解法:
方法一:列出渐进分数表 ,若存在 i=j,Pi2≡Pj2modn ,令 x=(Pimodn)⋅(Pjmodn),y=Pi2modn=Pj2modn 若 (x+y,n)=n 且 (x−y,n)=n 则它们即为n的真因数
方法二:若无法找到这样的i,j,则列出渐进分数表,令 Bk=Pk2−nQk2 ,若 Bk 为平方数,则有 n∣(Pk−Bk)(Pk+Bk) ,同理可得其真因数