luogu五一数学数论专题

五一数学数论专题

数论入门

整除

  • 整除性: 如 果 a 能 把 b 除 尽 , 即 b % a = 0 , 则 记 为 a ∣ b 如果a能把b除尽,即b\% a=0, 则记为a\mid b abb%a=0,ab
  • 自反性: 对 于 任 意 n , 有 n ∣ n 对于任意n,有n\mid n n,nn
  • 传递性: 若 a ∣ b 且 b ∣ c , 则 a ∣ c 若a\mid b 且 b\mid c,则a\mid c abbcac

唯一分解定理(算数基本定理)

  1. 正整数的质因数分解是唯一的

  2. 正整数除法,就是把两个数的质因数分解,然后每个质数的指数相减

  3. 设 A = 2 a 1 3 a 2 5 a 3 ⋯   B = 2 b 1 3 b 2 5 b 3 ⋯ 设A=2^{a_1}3^{a_2}5^{a_3}\cdots \ B=2^{b_1}3^{b_2}5^{b_3}\cdots A=2a13a25a3 B=2b13b25b3
    A ∣ B , 当 且 仅 当 : a i ≤ b i A|B,当且仅当:a_i \leq b_i ABaibi

约数与倍数

  • [ l , r ] 中 k 的 倍 数 有 ( r − l + 1 ) / k 个 [l,r]中k的倍数有(r-l+1)/k个 [l,r]k(rl+1)/k
  • O ( n log ⁡ n ) O(n\log n) O(nlogn) d ( n ) d(n) d(n):
    引 理 : 调 和 级 数 引理:调和级数 1 + 1 2 + 1 3 + ⋯ + 1 n = l n   n 1+\frac1 2 +\frac1 3+\cdots+\frac 1 n = ln\space n 1+21+31++n1=ln n
    枚 举 i ∈ [ 1 , n ] , j ∈ N + , 将 i ∗ j ∈ [ 1 , n ] 的 d ( i ∗ j ) 加 一 枚举i\in [1,n],j\in N_+,将i*j\in [1,n]的d(i*j)加一 i[1,n],jN+,ij[1,n]d(ij)
    则 时 间 复 杂 度 为 O ( n + n 2 + n 3 + ⋯ + n n ) = O ( n ln ⁡ n ) 则时间复杂度为O(n+\frac n 2 +\frac n 3+\cdots+\frac n n )=O(n\ln n) O(n+2n+3n++nn)=O(nlnn)
  • 约数个数通过质因数分解解决, d ( n ) = ( r 1 + 1 ) ( r 2 + 1 ) ( r 3 + 1 ) ⋯ d(n)=(r_1+1)(r_2 + 1)(r_3+1)\cdots d(n)=(r1+1)(r2+1)(r3+1)(乘法原理)

质数

  • 一个整数无非平凡因子(除1和n外的因子)
  • 质数有无限个

证明:
假设质数是有限个,设为 p 1 , p 2 ⋯ p n p_1,p_2\cdots p_n p1,p2pn
我们构造这样一个数 M M M M = p 1 × p 2 × ⋯ × p n + 1 M=p_1\times p_2 \times \cdots \times p_n + 1 M=p1×p2××pn+1 M M M满足 M % p i = 1 ( i ∈ [ 1 , n ] ) M\%p_i=1(i\in [1,n]) M%pi=1(i[1,n])
M M M为质数,与假设矛盾,故假设不成立,命题得证

  • 质数分布定理
    lim ⁡ n → + ∞ π ( n ) = n ln ⁡ n \lim_{n\rightarrow+\infty}\pi (n)=\frac n {\ln n} n+limπ(n)=lnnn
  • O ( n ) O(\sqrt{n}) O(n )质因数分解
// 将 x 分解质因数,结果从小到大储存在p[]中,返回质因子的个数
int factorize(int x,int p[]){
    int cnt=0;
    for(int i=2;i*i<=x;i++){
        while(x%i==0){
            p[++cnt]=i;
            x/=i;
        }
    }
    if(x>1) p[++cnt]=x;
    return cnt;
}
  • 判断质数
bool isprime(int x){
    if(x==1) return false;
    for(int i=2;i*i<=x;i++){
        if(x%i==0) return false;
    }
    return true;
}
  • 质数筛法

GCD和LCM

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)

证明:
r ( a , b ) r(a,b) r(a,b)表示 a a a, b b b所有公因数的集合
g c d ( a , b ) gcd(a,b) gcd(a,b) r ( a , b ) r(a,b) r(a,b)中的最大值
引理 a &gt; b 时 , g c d ( a , b ) = g c d ( a , a − b ) = g c d ( b , a − b ) a&gt;b时,gcd(a,b)=gcd(a,a-b)=gcd(b,a-b) a>b,gcd(a,b)=gcd(a,ab)=gcd(b,ab)
欲证引理,只需证 r ( a , b ) = r ( a , a − b ) = r ( b , a − b ) r(a,b)=r(a,a-b)=r(b,a-b) r(a,b)=r(a,ab)=r(b,ab)
设 a = p ⋅ d , b = q ⋅ d , 则 a − b = ( p − q ) ⋅ d ( p , q ∈ Z , d ∈ r ( a , b ) ) 设 a=p\cdot d,b=q\cdot d,则 a-b=(p-q)\cdot d (p,q\in Z,d\in r(a,b) ) a=pd,b=qd,ab=(pq)d(p,qZ,dr(a,b))
显然,引理得证
∵ g c d ( a , b ) = g c d ( b , a − b ) \because gcd(a,b)=gcd(b,a-b) gcd(a,b)=gcd(b,ab)
∴ g c d ( a , b ) = g c d ( b , a % b ) \therefore gcd(a,b)=gcd(b,a\%b) gcd(a,b)=gcd(b,a%b)

时间复杂度最坏情况为 O ( log ⁡ n ) , 条 件 是 a , b 为 F i b 数 列 的 相 邻 项 O(\log n),条件是a,b为Fib数列的相邻项 O(logn),a,bFib

g c d ( n , m ) = ∏ p i m i n ( a i , b i ) gcd(n,m)=\prod p_i^{min(a_i,b_i)} gcd(n,m)=pimin(ai,bi)

l c m ( n , m ) = ∏ p i m a x ( a i , b i ) lcm(n,m)=\prod p_i^{max(a_i,b_i)} lcm(n,m)=pimax(ai,bi)

g c d ( n , m ) ⋅ l c m ( n , m ) = n ⋅ m gcd(n,m) \cdot lcm(n,m)= n\cdot m gcd(n,m)lcm(n,m)=nm

g c d ( F [ a ] , F [ b ] ) = F [ g c d ( a , b ) ] gcd(F[a],F[b])=F[gcd(a,b)] gcd(F[a],F[b])=F[gcd(a,b)]

引理1 gcd ⁡ ( F [ n + 1 ] , F [ n ] ) = 1 \gcd(F[n+1],F[n])=1 gcd(F[n+1],F[n])=1
证明: 根据辗转相减法则
gcd ⁡ ( F [ n + 1 ] , F [ n ] ) = gcd ⁡ ( F [ n + 1 ] − F [ n ] , F [ n ] ) = gcd ⁡ ( F [ n ] , F [ n − 1 ] ) = gcd ⁡ ( F [ 2 ] , F [ 1 ] ) = 1 \gcd(F[n+1],F[n]) \\ =\gcd(F[n+1]-F[n],F[n]) \\ =\gcd(F[n],F[n-1]) \\ =\gcd(F[2],F[1]) \\ =1 gcd(F[n+1],F[n])=gcd(F[n+1]F[n],F[n])=gcd(F[n],F[n1])=gcd(F[2],F[1])=1

引理2 F [ m + n ] = F [ m − 1 ] F [ n ] + F [ m ] F [ n + 1 ] F[m+n]=F[m-1]F[n]+F[m]F[n+1] F[m+n]=F[m1]F[n]+F[m]F[n+1]
证明:
F [ n + m ] = F [ n + m − 1 ] + F [ n + m − 2 ] = 2 ∗ F [ n + m − 2 ] + F [ n + m − 3 ] = ⋯ F[n+m] \\ =F[n+m-1]+F[n+m-2] \\ =2*F[n+m-2]+F[n+m-3] \\ =\cdots F[n+m]=F[n+m1]+F[n+m2]=2F[n+m2]+F[n+m3]=

F [ n + m ] = a [ x ] ∗ F [ n + m − x ] + b [ x ] ∗ F [ n + m − x − 1 ] = a [ x ] ∗ ( F [ n + m − x − 1 ] + F [ n + m − x − 2 ] ) + b [ x ] ∗ ( F [ n + m − x − 1 ) = ( a [ x ] + b [ x ] ) ∗ F [ n + m + x − 1 ] + a [ x ] ∗ F [ n + m + x − 2 ] F[n+m] \\ =a[x]*F[n+m-x]+b[x]*F[n+m-x-1]\\ =a[x]*(F[n+m-x-1]+F[n+m-x-2])+b[x]*(F[n+m-x-1)\\ =(a[x]+b[x])*F[n+m+x-1]+a[x]*F[n+m+x-2] F[n+m]=a[x]F[n+mx]+b[x]F[n+mx1]=a[x](F[n+mx1]+F[n+mx2])+b[x](F[n+mx1)=(a[x]+b[x])F[n+m+x1]+a[x]F[n+m+x2]
当 x = 1 时 有 a [ 1 ] = F [ 2 ] ,   b [ 1 ] = F [ 1 ] 当x=1时有 a[1]=F[2],\ b[1]=F[1] x=1a[1]=F[2], b[1]=F[1]
$当x=2时有 a[2]=F[2]+F[1]=F[3],\ b[2]=a[1]=F[2] $
$当x=k+1时有 a[k+1]=a[k]+b[k]=F[k+1]+F[k]=F[k+2] \b[k+1]=a[k]=F[k+1] $
$所以当x=n时有 $
$F[n+m]=a[n]F[m]+b[n]F[m-1]\
=F[n+1]F[m]+F[n]F[m-1] $

引理3 $\gcd(F[n+m],F[n])=\gcd(F[n],F[m]) $
证明:
gcd ⁡ ( F [ n + m ] , F [ n ] ) = gcd ⁡ ( F [ n + 1 ] F [ m ] + F [ n ] F [ m − 1 ] , F [ n ] ) = gcd ⁡ ( F [ n + 1 ] F [ m ] , F [ n ] ) = gcd ⁡ ( F [ n + 1 ] , F [ n ] ) ⋅ gcd ⁡ ( F [ m ] , F [ n ] ) = gcd ⁡ ( F [ m ] , F [ n ] ) \gcd(F[n+m],F[n]) \\ =\gcd(F[n+1]F[m]+F[n]F[m-1],F[n])\\ =\gcd(F[n+1]F[m],F[n])\\ =\gcd(F[n+1],F[n])\cdot \gcd(F[m],F[n]) \\ =\gcd(F[m],F[n]) gcd(F[n+m],F[n])=gcd(F[n+1]F[m]+F[n]F[m1],F[n])=gcd(F[n+1]F[m],F[n])=gcd(F[n+1],F[n])gcd(F[m],F[n])=gcd(F[m],F[n])

于是显然有 gcd ⁡ ( F [ n ] , F [ m ] ) = F [ gcd ⁡ ( n , m ) ] \gcd(F[n],F[m])=F[\gcd(n,m)] gcd(F[n],F[m])=F[gcd(n,m)]

  • 两个符号

    • 上取整 ceil() ⌈ a b ⌉ \lceil \frac a b \rceil ba

    • 下取整 floor() ⌊ a b ⌋ \lfloor \frac a b \rfloor ba

  • 随时取模

    • 可证:各位数字之和能被3整除则该数能被3整除

    考虑三位数的 n n n
    n = a b c ‾ n=\overline{abc} n=abc,则有
    n % 3 = ( 100 a + 10 b + c ) % 3 = [ ( 100 % 3 ) a + ( 10 % 3 ) b + c ] % 3 = ( a + b + c ) % 3 n\% 3=(100a+10b+c)\% 3 \\ =[(100\%3)a+(10\%3)b+c]\%3 \\ =(a+b+c)\%3 n%3=(100a+10b+c)%3=[(100%3)a+(10%3)b+c]%3=(a+b+c)%3
    其余位数同理

    • 可证:最后两位数能被4整除则该数能被4整除

    考虑四位数的 n n n
    n = a b c d ‾ n=\overline{abcd} n=abcd,则有
    n % 4 = ( 1000 a + 100 b + 10 c + d ) % 4 = [ ( 1000 % 4 ) a + ( 100 % 4 ) b + 10 c + d ] % 4 = ( 10 c + d ) % 4 = c d ‾ % 4 n\%4=(1000a+100b+10c+d)\%4 \\ =[(1000\%4)a+(100\%4)b+10c+d]\%4 \\ =(10c+d)\%4 \\ =\overline{cd}\%4 n%4=(1000a+100b+10c+d)%4=[(1000%4)a+(100%4)b+10c+d]%4=(10c+d)%4=cd%4
    其余位数同理

( a + b ) %   p = ( a % p + b % p ) % p (a+b)\%\ p=(a\% p+b\%p)\%p (a+b)% p=(a%p+b%p)%p ( a × b ) % p = ( a % p × b % p ) % p (a\times b)\%p=(a\%p \times b\%p)\%p (a×b)%p=(a%p×b%p)%p

  • 模意义

    • 36 ≡ 11 ( m o d 5 ) 36\equiv11(mod5) 3611(mod5)

a + c ≡ b + c ( m o d   p ) a+c\equiv b+c (mod\ p) a+cb+c(mod p) a ⋅ c ≡ b ⋅ c ( m o d   p ) a\cdot c\equiv b\cdot c (mod\ p) acbc(mod p)

  • 模环

  • 奇怪的性质

⌊ ⌊ a b ⌋ c ⌋ = ⌊ a b c ⌋ = ⌊ ⌊ a c ⌋ b ⌋ \lfloor\frac{\lfloor\frac{a}{b}\rfloor}{c}\rfloor= \lfloor{\frac{a}{bc}}\rfloor=\lfloor\frac{\lfloor\frac a c \rfloor}b\rfloor cba=bca=bca

证明:
k b c ≤ a &lt; ( k + 1 ) b c , k ∈ N kbc \leq a &lt; (k+1)bc , k \in N kbca<(k+1)bc,kN
因此 k c ≤ a b &lt; ( k + 1 ) c k ≤ a b c &lt; k + 1 kc \leq \frac a b &lt; (k+1)c \\ k \leq \frac a {bc} &lt; k+1 kcba<(k+1)ckbca<k+1因此
⌊ a b c ⌋ = k \lfloor \frac a {bc} \rfloor = k bca=k 由 于 k c 与 ( k + 1 ) c 都 是 整 数 , 所 以 由于kc与(k+1)c都是整数,所以 kc(k+1)c
k c ≤ ⌊ a b ⌋ < ( k + 1 ) c kc \leq \lfloor \frac a b \rfloor < (k+1)c kcba(k+1)c因此
k ≤ ⌊ a b ⌋ c &lt; k + 1 k \leq \frac {\lfloor \frac a b \rfloor} c &lt; k+1 kcba<k+1因此
⌊ ⌊ a b ⌋ c ⌋ = k = ⌊ a b c ⌋ \lfloor \frac {\lfloor \frac a b \rfloor} c \rfloor = k = \lfloor \frac a {bc} \rfloor cba=k=bca同理
⌊ ⌊ a c ⌋ b ⌋ = k = ⌊ a b c ⌋ \lfloor \frac {\lfloor \frac a c \rfloor} b \rfloor = k = \lfloor \frac a {bc} \rfloor bca=k=bca
⌊ ⌊ a b ⌋ c ⌋ = ⌊ a b c ⌋ = ⌊ ⌊ a c ⌋ b ⌋ \lfloor\frac{\lfloor\frac{a}{b}\rfloor}{c}\rfloor= \lfloor{\frac{a}{bc}}\rfloor=\lfloor\frac{\lfloor\frac a c \rfloor}b\rfloor cba=bca=bca

典型的质数:19260817 998244353

数论进阶

线性不定方程

二元一次不定方程

  • 裴蜀定理:关于整数 x x x, y y y的不定方程 a x + b y = gcd ⁡ ( a , b ) ax+by=\gcd(a,b) ax+by=gcd(a,b)必定有解

  • 处理不定方程 a x + b y = c ax+by=c ax+by=c

    • c = gcd ⁡ ( a , b ) c=\gcd(a,b) c=gcd(a,b),此时据裴蜀定理有解
    • c = k ⋅ gcd ⁡ ( a , b ) c=k\cdot \gcd(a,b) c=kgcd(a,b)方程两边除以 k k k
    • c ⊥ gcd ⁡ ( a , b ) c \perp \gcd(a,b) cgcd(a,b)此时无解
  • 扩展欧几里得:已知 b x + ( a % b ) y = gcd ⁡ ( a , b ) bx+(a\%b)y=\gcd(a,b) bx+(a%b)y=gcd(a,b)的解 ( x , y ) (x,y) (x,y),推出 a x ′ + b y ′ = gcd ⁡ ( a , b ) ax&#x27;+by&#x27;=\gcd(a,b) ax+by=gcd(a,b)的解 ( x ′ , y ′ ) (x&#x27;,y&#x27;) (x,y) x ′ = y ,   y ′ = x − ⌊ a b ⌋ ⋅ y x&#x27;=y,\ y&#x27;=x-\lfloor \frac a b \rfloor \cdot y x=y, y=xbay

int exgcd(int a,int b,int& x,int& y){
    if(b==0){
        x=1;y=0;
        return a;    
    }
    int tmp=exgcd(b,a%b,x,y);
    int t=x;
    x=y;
    y=t-a/b*y;
    return tmp;
}

模线性同余方程组

考虑方程组
{   x ≡ a 1 ( m o d   p 1 )   x ≡ a 2 ( m o d   p 2 ) ⋯   x ≡ a n ( m o d   p n ) \begin{cases} \ x \equiv a_1 (mod \ p_1) \\ \ x \equiv a_2 (mod \ p_2) \\ \hspace{10pt} \cdots \\ \ x \equiv a_n (mod \ p_n) \\ \end{cases}  xa1(mod p1) xa2(mod p2) xan(mod pn)
满足 p 1 , p 2 , ⋯ &ThinSpace; , p n p_1,p_2,\cdots,p_n p1,p2,,pn两两互质,求 x x x

我们需要构造一个 x = ∑ r i , r i x=\sum r_i , r_i x=ri,ri应满足
r i % p k = { 0 , i ≠ k a i ,    i = k r_i \% p_k= \begin{cases}0,\qquad i\ne k\\ a_i,\quad\ \ i=k \end{cases} ri%pk={0,i̸=kai,  i=k
我们设 P = ∏ p i P=\prod p_i P=pi
显然 r i = a i P p i ⋅ i n v p i ( P p i ) r_i=a_i\frac P p_i \cdot inv_{p_i}(\frac P p_i) ri=aipPiinvpi(pPi)

中国剩余定理(CRT):
模线性同余方程组的解系为
a n s % ∏ i = 1 n p i = ∑ i = 1 n a i P i i n v p i ( P i ) 其 中 P i = ∏ j = 1 n p j p i ans\% \prod_{i=1}^n p_i=\sum_{i=1}^n a_iP_iinv_{p_i}(P_i)\quad其中P_i= \frac {\prod_{j=1}^n p_j} {p_i} ans%i=1npi=i=1naiPiinvpi(Pi)Pi=pij=1npj

逆元

  • x ⋅ i n v ( x ) ≡ 1 ( m o d   p ) x\cdot inv(x) \equiv 1 (mod\ p) xinv(x)1(mod p)

  • 费马小定理: n p − 1 ≡ 1 ( m o d   p ) n^{p-1} \equiv 1 (mod\ p) np11(mod p)

  • 模质数意义下的逆元求法: i n v ( x ) = x p − 2   m o d   p inv(x)=x^{p-2}\ mod\ p inv(x)=xp2 mod p

组合数学

加法原理与乘法原理

乘法原理中,各步骤是独立的;
加法原理中,各手段只能用其中一个。

排列与组合

  • 排列符合乘法原理 A n m = n ( n − 1 ) ( n − 2 ) ⋯ ( n − m + 1 ) = n ! ( n − m ) ! A_n^m=n(n-1)(n-2)\cdots (n-m+1)=\frac{n!}{(n-m)!} Anm=n(n1)(n2)(nm+1)=(nm)!n!

  • 组合即为排列去除掉重复情况 C n m = A n m A m m = n ! m ! ( n − m ) ! C_n^m=\frac{A_n^m}{A_m^m}=\frac{n!}{m!(n-m)!} Cnm=AmmAnm=m!(nm)!n!

  • 组合数递推(Pascal公式):当选完前n-1个数后,对于第n个数要么选要么不选。符合加法原理 C n m = C n − 1 m + C n − 1 m − 1 C_n^m=C_{n-1}^m+C_{n-1}^{m-1} Cnm=Cn1m+Cn1m1

  • Lucas定理(复杂度 O ( log ⁡ n ) O(\log n) O(logn) C n m = C n / p m / p ⋅ C n % p m % p ( m o d   p ) C_n^m=C_{n/p}^{m/p}\cdot C_{n\%p}^{m\%p}\quad (mod\ p) Cnm=Cn/pm/pCn%pm%p(mod p)

数学漫谈

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值