跳转至

数论基础

本文对于数论的开头部分做一个简介.

整除

定义

设 a,b∈Z,a≠0.如果 ∃q∈Z,使得 b=aq,那么就说 b 可被 a 整除,记作 a∣b;b 不被 a 整除记作 a∤b.

整除的性质:

  • a∣b⟺−a∣b⟺a∣−b⟺|a|∣|b|
  • a∣b∧b∣c⟹a∣c
  • a∣b∧a∣c⟺∀x,y∈Z,a∣(xb+yc)
  • a∣b∧b∣a⟹b=±a
  • 设 m≠0,那么 a∣b⟺ma∣mb.
  • 设 b≠0,那么 a∣b⟹|a|≤|b|.
  • 设 a≠0,b=qa+c,那么 a∣b⟺a∣c.

约数

定义

若 a∣b,则称 b 是 a 的 倍数,a 是 b 的 约数.

0 是所有非 0 整数的倍数.对于整数 b≠0,b 的约数只有有限个.

平凡约数(平凡因数):对于整数 b≠0,±1、±b 是 b 的平凡约数.当 b=±1 时,b 只有两个平凡约数.

对于整数 b≠0,b 的其他约数称为真约数(真因数、非平凡约数、非平凡因数).

约数的性质:

  • 设整数 b≠0.当 d 遍历 b 的全体约数的时候,bd 也遍历 b 的全体约数.
  • 设整数 b>0,则当 d 遍历 b 的全体正约数的时候,bd 也遍历 b 的全体正约数.

在具体问题中,如果没有特别说明,约数总是指正约数.

带余数除法

余数

设 a,b 为两个给定的整数,a≠0.设 d 是一个给定的整数.那么,一定存在唯一的一对整数 q 和 r,满足 b=qa+r,d≤r<|a|+d.

无论整数 d 取何值,r 统称为余数.a∣b 等价于 a∣r.

一般情况下,d 取 0,此时等式 b=qa+r,0≤r<|a| 称为带余数除法(带余除法).这里的余数 r 称为最小非负余数.

余数往往还有两种常见取法:

  • 绝对最小余数:d 取 a 的绝对值的一半的相反数.即 b=qa+r,−|a|2≤r<|a|−|a|2.
  • 最小正余数:d 取 1.即 b=qa+r,1≤r<|a|+1.

带余数除法的余数只有最小非负余数.如果没有特别说明,余数总是指最小非负余数.

余数的性质:

  • 任一整数被正整数 a 除后,余数一定是且仅是 0 到 (a−1) 这 a 个数中的一个.
  • 相邻的 a 个整数被正整数 a 除后,恰好取到上述 a 个余数.特别地,一定有且仅有一个数被 a 整除.

最大公约数与最小公倍数

关于公约数、公倍数、最大公约数与最小公倍数,四个名词的定义,见 最大公约数.

Warning

一些作者认为 0 和 0 的最大公约数无定义,其余作者一般将其视为 0.C++ STL 的实现中采用后者,即认为 0 和 0 的最大公约数为 01.

最大公约数有如下性质:

  • (a1,…,an)=(|a1|,…,|an|);
  • (a,b)=(b,a);
  • 若 a≠0,则 (a,0)=(a,a)=|a|;
  • (bq+r,b)=(r,b);
  • (a1,…,an)=((a1,a2),a3,…,an).进而 ∀1<k<n−1, (a1,…,an)=((a1,…,ak),(ak+1,…,an));
  • 对不全为 0 的整数 a1,…,an 和非零整数 m,(ma1,…,man)=|m|(a1,…,an);
  • 对不全为 0 的整数 a1,…,an,若 (a1,…,an)=d,则 (a1/d,…,an/d)=1;
  • (an,bn)=(a,b)n.

最大公约数还有如下与互素相关的性质:

  • 若 b|ac 且 (a,b)=1,则 b∣c;
  • 若 b|c、a|c 且 (a,b)=1,则 ab∣c;
  • 若 (a,b)=1,则 (a,bc)=(a,c);
  • 若 (ai,bj)=1, ∀1≤i≤n,1≤j≤m,则 (∏iai,∏jbj)=1.特别地,若 (a,b)=1,则 (an,bm)=1;
  • 对整数 a1,…,an,若 ∃v∈Z, ∏iai=vm,且 (ai,aj)=1, ∀i≠j,则 ∀1≤i≤n, aim∈Z.

最小公倍数有如下性质:

  • [a1,…,an]=[|a1|,…,|an|];
  • [a,b]=[b,a];
  • 若 a≠0,则 [a,1]=[a,a]=|a|;
  • 若 a∣b,则 [a,b]=|b|;
  • [a1,…,an]=[[a1,a2],a3,…,an].进而 ∀1<k<n−1, [a1,…,an]=[[a1,…,ak],[ak+1,…,an]];
  • 若 ai∣m, ∀1≤i≤n,则 [a1,…,an]∣m;
  • [ma1,…,man]=|m|[a1,…,an];
  • [a,b,c][ab,bc,ca]=[a,b][b,c][c,a];
  • [an,bn]=[a,b]n.

最大公约数和最小公倍数可以组合出很多奇妙的等式,如:

  • (a,b)[a,b]=|ab|;
  • (ab,bc,ca)[a,b,c]=|abc|;
  • (a,b,c)2(a,b)(b,c)(a,c)=[a,b,c]2[a,b][b,c][a,c].

这些性质均可通过定义或 唯一分解定理 证明,其中使用唯一分解定理的证明更容易理解.

互素

定义

若 (a1,a2)=1,则称 a1 和 a2 互素(既约).

若 (a1,…,ak)=1,则称 a1,…,ak 互素(既约).

多个整数互素,不一定两两互素.例如 6、10 和 15 互素,但是任意两个都不互素.

互素的性质与最大公约数理论:裴蜀定理(Bézout's identity).见 裴蜀定理.

辗转相除法

辗转相除法是一种算法,也称 Euclid 算法.见 最大公约数.

素数与合数

关于素数的算法见 素数.

定义

设整数 p≠0,±1.如果 p 除了平凡约数外没有其他约数,那么称 p 为 素数(不可约数).

若整数 a≠0,±1 且 a 不是素数,则称 a 为 合数.

p 和 −p 总是同为素数或者同为合数.如果没有特别说明,素数总是指正的素数.

整数的因数是素数,则该素数称为该整数的素因数(素约数).

素数与合数的简单性质:

  • 大于 1 的整数 a 是合数,等价于 a 可以表示为整数 d 和 e(1<d,e<a)的乘积.
  • 如果素数 p 有大于 1 的约数 d,那么 d=p.
  • 大于 1 的整数 a 一定可以表示为素数的乘积.
  • 对于合数 a,一定存在素数 p≤a 使得 p∣a.
  • 素数有无穷多个.
  • 所有大于 3 的素数都可以表示为 6n±1 的形式2.

算术基本定理

算术基本引理

设 p 是素数,p∣a1a2,那么 p∣a1 和 p∣a2 至少有一个成立.

算术基本引理的逆命题稍加修改也可以得到素数的另一种定义.

素数的另一种定义

对整数 p≠0,±1,若对任意满足 p∣a1a2 的整数 a1,a2 均有 p∣a1 或 p∣a2 成立,则称 p 是素数.

Tip

这个定义的动机可以从 素理想 中找到.

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

设正整数 a,那么必有表示:

a=p1p2⋯ps

其中 pj(1≤j≤s) 是素数.并且在不计次序的意义下,该表示唯一.

标准素因数分解式

将上述表示中,相同的素数合并,可得:

a=p1α1p2α2⋯psαs,p1<p2<⋯<ps

称为正整数 a 的标准素因数分解式.

算术基本定理和算术基本引理,两个定理是等价的.

同余

定义

设整数 m≠0.若 m∣(a−b),称 m 为 模数(模),a 同余于 b 模 m,b 是 a 对模 m 的 剩余.记作 a≡b(modm).

否则,a 不同余于 b 模 m,b 不是 a 对模 m 的剩余.记作 a≢b(modm).

这样的等式,称为模 m 的同余式,简称 同余式.

根据整除的性质,上述同余式也等价于 a≡b(mod(−m)).

后文中,如果没有特别说明,模数总是 正整数.

式中的 b 是 a 对模 m 的剩余,这个概念与余数完全一致.通过限定 b 的范围,相应的有 a 对模 m 的最小非负剩余、绝对最小剩余、最小正剩余.

同余的性质:

  • 同余是 等价关系,即同余具有
    • 自反性:a≡a(modm).
    • 对称性:若 a≡b(modm),则 b≡a(modm).
    • 传递性:若 a≡b(modm),b≡c(modm),则 a≡c(modm).
  • 线性运算:若 a,b,c,d∈Z,m∈N∗,a≡b(modm),c≡d(modm) 则有:
    • a±c≡b±d(modm).
    • a×c≡b×d(modm).
  • 设 f(x)=∑i=0naixi 和 g(x)=∑i=0nbixi 是两个整系数多项式,m∈N∗,且 ai≡bi(modm), 0≤i≤n,则对任意整数 x 均有 f(x)≡g(x)(modm).进而若 s≡t(modm),则 f(s)≡g(t)(modm).
  • 若 a,b∈Z,k,m∈N∗,a≡b(modm), 则 ak≡bk(modmk).
  • 若 a,b∈Z,d,m∈N∗,d∣a,d∣b,d∣m,则当 a≡b(modm) 成立时,有 ad≡bd(modmd).
  • 若 a,b∈Z,d,m∈N∗,d∣m,则当 a≡b(modm) 成立时,有 a≡b(modd).
  • 若 a,b∈Z,d,m∈N∗,则当 a≡b(modm) 成立时,有 (a,m)=(b,m).若 d 能整除 m 及 a,b 中的一个,则 d 必定能整除 a,b 中的另一个.

还有性质是乘法逆元.见 乘法逆元.

同余类与剩余系

为方便讨论,对集合 A,B 和元素 r,我们引入如下记号:

  • r+A:={r+a:a∈A};
  • rA:={ra:a∈A};
  • A+B:={a+b:a∈A,b∈B};
  • AB:={ab:a∈A,b∈B}.
同余类

对非零整数 m,把全体整数分成 |m| 个两两不交的集合,且同一个集合中的任意两个数模 m 均同余,我们把这 |m| 个集合均称为模 m 的 同余类 或 剩余类.用 rmodm 表示含有整数 r 的模 m 的同余类.

不难证明对任意非零整数 m,上述划分方案一定存在且唯一.

由同余类的定义可知:

  • rmodm={r+km:k∈Z};
  • rmodm=smodm⟺r≡s(modm);
  • 对任意 r,s∈Z,要么 rmodm=smodm,要么 (rmodm)∩(smodm)=∅;
  • 若 m1∣m,则对任意整数 r 均有 r+mZ⊆r+m1Z.

注意到同余是等价关系,所以同余类即为同余关系的等价类.

我们把模 m 的同余类全体构成的集合记为 Zm,即

Zm:={rmodm:0≤r<m}

不难发现:

  • 对任意整数 a,a+Zm=Zm;
  • 对任意与 m 互质的整数 b,bZm=Zm.

由 商群 的定义可知 Zm=Z/mZ,所以有时我们也会用 Z/mZ 表示 Zm.

由 抽屉原理 可知:

  • 任取 m+1 个整数,必有两个整数模 m 同余.
  • 存在 m 个两两模 m 不同余的整数.

由此我们给出完全剩余系的定义:

(完全)剩余系

对 m 个整数 a1,a2,…,am,若对任意的数 x,有且仅有一个数 ai 使得 x 与 ai 模 m 同余,则称这 m 个整数 a1,a2,…,am 为模 m 的 完全剩余系,简称 剩余系.

我们还可以定义模 m 的:

  • 最小非负(完全)剩余系:0,…,m−1;
  • 最小正(完全)剩余系:1,…,m;
  • 绝对最小(完全)剩余系:−⌊m/2⌋,…,−⌊−m/2⌋−1;
  • 最大非正(完全)剩余系:−m+1,…,0;
  • 最大负(完全)剩余系:−m,…,−1.

若无特殊说明,一般我们只用最小非负剩余系.

我们注意到如下命题成立:

  • 在模 m 的任意一个同余类中,任取两个整数 a1,a2 均有 (a1,m)=(a2,m).

考虑同余类 rmodm,若 (r,m)=1,则该同余类的所有元素均与 m 互质,这说明我们也许可以通过类似方式得知所有与 m 互质的整数构成的集合的结构.

既约同余类

对同余类 rmodm,若 (r,m)=1,则称该同余类为 既约同余类 或 既约剩余类.

我们把模 m 既约剩余类的个数记作 φ(m),称其为 Euler 函数.

我们把模 m 的既约同余类全体构成的集合记为 Zm∗,即

Zm∗:={rmodm:0≤r<m,(r,m)=1}
Warning

对于任意的整数 a 和与 m 互质的整数 b,bZm∗=Zm∗,但是 a+Zm∗ 不一定为 Zm∗.这一点与 Zm 不同.

由 抽屉原理 可知:

  • 任取 φ(m)+1 个与 m 互质的整数,必有两个整数模 m 同余.
  • 存在 φ(m) 个与 m 互质且两两模 m 不同余的整数.

由此我们给出既约剩余系的定义:

既约剩余系

对 t=φ(m) 个整数 a1,a2,…,at,若 (ai,m)=1, ∀1≤i≤t,且对任意满足 (x,m)=1 的数 x,有且仅有一个数 ai 使得 x 与 ai 模 m 同余,则称这 t 个整数 a1,a2,…,at 为模 m 的 既约剩余系、缩剩余系 或 简化剩余系.

类似地,我们也可以定义最小非负既约剩余系等概念.

若无特殊说明,一般我们只用最小非负既约剩余系.

剩余系的复合

对正整数 m,我们有如下定理:

  • 若 m=m1m2, 1≤m1,m2,令 Zm1,Zm2 分别为模 m1,m2 的 完全 剩余系,则对任意与 m1 互质的 a 均有:

    Zm=aZm1+m1Zm2.

    为模 m 的 完全 剩余系.进而,若 m=∏i=1kmi, 1≤m1,m2,…,mk,令 Zm1,…,Zmk 分别为模 m1,…,mk 的 完全 剩余系,则:

    Zm=∑i=1k(∏j=1i−1mj)Zmi.

    为模 m 的 完全 剩余系.

证明

只需证明对任意满足 ax+m1y≡ax′+m1y′(modm1m2) 的 x,x′∈Zm1,y,y′∈Zm2,都有:

ax+m1y=ax′+m1y′.

实际上,由 m1∣m1m2,我们有 ax+m1y≡ax′+m1y′(modm1),进而 ax≡ax′(modm1),由 (a,m1)=1 可知 x≡x′(modm1),进而有 x=x′.

进一步,m1y≡m1y′(modm1m2),则 y≡y′(modm2),即 y=y′.

因此,

ax+m1y=ax′+m1y′.
  • 若 m=m1m2, 1≤m1,m2,(m1,m2)=1,令 Zm1∗,Zm2∗ 分别为模 m1,m2 的 既约 剩余系,则:

    Zm∗=m2Zm1∗+m1Zm2∗.

    为模 m 的 既约 剩余系.

Tip

该定理等价于证明 Euler 函数为 积性函数.

证明

令 Zm1,Zm2 分别为模 m1,m2 的完全剩余系,我们已经证明了

Zm=m2Zm1+m1Zm2

为模 m 的完全剩余系.令 M={a∈Zm:(a,m)=1}⊆Zm,显然 M 为模 m 的既约剩余系,所以我们只需证明 M=Zm∗ 即可.

显然 Zm∗⊆Zm.

任取 m2x+m1y∈M,其中 x∈Zm1 且 y∈Zm2,有 (m2x+m1y,m1m2)=1,由 (m1,m2)=1 可得

1=(m2x+m1y,m1)=(m2x,m1)=(x,m1), 1=(m2x+m1y,m2)=(m1y,m2)=(y,m2).

因此可得 x∈Zm1∗ 且 y∈Zm2∗,即 M⊆Zm∗.

任取 m2x+m1y∈Zm∗,其中 x∈Zm1∗ 且 y∈Zm2∗,有 (x,m1)=1 且 (y,m2)=1,由 (m1,m2)=1 可得

(m2x+m1y,m1)=(m2x,m1)=(x,m1)=1, (m2x+m1y,m2)=(m1y,m2)=(x,m2)=1,

因此可得 (m2x+m1y,m1m2)=1,即 Zm∗⊆M.

综上所述,

Zm∗=m2Zm1∗+m1Zm2∗.

为模 m 的 既约 剩余系.

数论函数

数论函数(也称算术函数)指定义域为正整数的函数.数论函数也可以视作一个数列.

积性函数

定义

在数论中,若函数 f(n) 满足 f(1)=1,且 f(xy)=f(x)f(y) 对任意互质的 x,y∈N∗ 都成立,则 f(n) 为 积性函数.

在数论中,若函数 f(n) 满足 f(1)=1 且 f(xy)=f(x)f(y) 对任意的 x,y∈N∗ 都成立,则 f(n) 为 完全积性函数.

性质

若 f(x) 和 g(x) 均为积性函数,则以下函数也为积性函数:

h(x)=f(xp)h(x)=fp(x)h(x)=f(x)g(x)h(x)=∑d∣xf(d)g(xd)

对正整数 x,设其唯一质因数分解为 x=∏piki,其中 pi 为质数.

若 F(x) 为积性函数,则有 F(x)=∏F(piki).

若 F(x) 为完全积性函数,则有 F(x)=∏F(piki)=∏F(pi)ki.

例子

  • 单位函数:ε(n)=[n=1].(完全积性)
  • 恒等函数:idk⁡(n)=nk,id1⁡(n) 通常简记作 id⁡(n).(完全积性)
  • 常数函数:1(n)=1.(完全积性)
  • 除数函数:σk(n)=∑d∣ndk.σ0(n) 通常简记作 d(n) 或 τ(n),σ1(n) 通常简记作 σ(n).
  • 欧拉函数:φ(n)=∑i=1n[(i,n)=1].
  • 莫比乌斯函数:μ(n)={1n=10∃d>1,d2∣n(−1)ω(n)otherwise,其中 ω(n) 表示 n 的本质不同质因子个数.

加性函数

定义

在数论中,若函数 f(n) 满足 f(1)=0 且 f(xy)=f(x)+f(y) 对任意互质的 x,y∈N∗ 都成立,则 f(n) 为 加性函数.

在数论中,若函数 f(n) 满足 f(1)=0 且 f(xy)=f(x)+f(y) 对任意的 x,y∈N∗ 都成立,则 f(n) 为 完全加性函数.

加性函数

本节中的加性函数指数论上的加性函数 (Additive function),应与代数中的 Additive map 做区分.

性质

对正整数 x,设其唯一质因数分解为 x=∏piki,其中 pi 为质数.

若 F(x) 为加性函数,则有 F(x)=∑F(piki).

若 F(x) 为完全加性函数,则有 F(x)=∑F(piki)=∑F(pi)⋅ki.

例子

为方便叙述,令所有质数组成的集合为 P.

  • 素因数分解中 p 的重数:νp(n)=max{k∈N:pk∣n},其中,p∈P.(完全加性)
  • 所有质因子数目:Ω(n)=∑p∈Pνp(n).(完全加性)
  • 相异质因子数目:ω(n)=∑p∈P[p∣n].
  • 所有质因子之和:a0(n)=∑p∈Pνp(n)⋅p.(完全加性)
  • 相异质因子之和:a1(n)=∑p∈P[p∣n]⋅p.

取整函数

对于实数 x,定义 下取整函数(floor function)和 上取整函数(ceiling function)分别为

⌊x⌋=max{k∈Z:k≤x}, ⌈x⌉=min{k∈Z:k≥x}.

利用下取整函数,一个实数可以分解为整数部分和小数部分:x=⌊x⌋+{x}.其中,{x} 表示 x 的小数部分.

取整函数有如下基本性质:(x∈R, n∈Z)

  • x∈Z⟺x=⌊x⌋=⌈x⌉.
  • ⌈x⌉−⌊x⌋=[x∉Z].
  • x−1<⌊x⌋≤x≤⌈x⌉<x+1.
  • ⌊−x⌋=−⌈x⌉, ⌈−x⌉=−⌊x⌋.
  • ⌊x+n⌋=⌊x⌋+n, ⌈x+n⌉=⌈x⌉+n.
  • ⌊x⌋ 和 ⌈x⌉ 都是关于 x 的单调弱增函数.

证明关于下(上)取整函数的等式经常用到如下等价形式:(x∈R, n∈Z)

  • ⌊x⌋=n⟺n≤x<n+1⟺x−1<n≤x.
  • ⌈x⌉=n⟺n−1<x≤n⟺x≤n<x+1.

证明关于下(上)取整函数的不等式经常用到如下等价形式:(x∈R, n∈Z)

  • x<n⟺⌊x⌋<n.
  • n<x⟺n<⌈x⌉.
  • x≤n⟺⌈x⌉≤n.
  • n≤x⟺n≤⌊x⌋.

涉及和、差的性质如下:(x,y∈R)

  • ⌊x⌋+⌊y⌋≤⌊x+y⌋≤⌊x⌋+⌊y⌋+1,且恰有一个等号成立.
  • ⌈x⌉+⌈y⌉−1≤⌈x+y⌉≤⌈x⌉+⌈y⌉,且恰有一个等号成立.
  • ⌊|x−y|⌋≤|⌊x⌋−⌊y⌋|≤⌈|x−y|⌉.
  • ⌊|x−y|⌋≤|⌈x⌉−⌈y⌉|≤⌈|x−y|⌉.

涉及商的性质如下:(x∈R, n∈Z, m∈Z+)

  • ⌈nm⌉=⌊n+m−1m⌋, ⌊nm⌋=⌈n−m+1m⌉.
  • ⌊x+nm⌋=⌊⌊x⌋+nm⌋, ⌈x+nm⌉=⌈⌈x⌉+nm⌉.
  • ⌊⌊x/n⌋m⌋=⌊xnm⌋, ⌈⌈x/n⌉m⌉=⌈xnm⌉.
  • 对于 x>0,有 ⌊xm⌋=∑k=1⌊x⌋[m∣k].

其中,第二条和第三条性质都可以看作是如下结论的直接推论:

  • 设 f 为连续单增函数,且只要 f(x)∈Z,就有 x∈Z,那么

    ⌊f(x)⌋=⌊f(⌊x⌋)⌋, ⌈f(x)⌉=⌈f(⌈x⌉)⌉.
    证明

    由对称性,只需要证明第一个等式.如果 x 是整数,那么命题显然.否则,⌊x⌋<x.由 f 和下取整函数的单调性可知,⌊f(x)⌋≥⌊f(⌊x⌋)⌋.如果等号不成立,那么设 y=⌊f(x)⌋,它满足 ⌊f(⌊x⌋)⌋<y≤⌊f(x)⌋,这等价于 f(⌊x⌋)<y≤f(x).由 f 的连续性可知,存在 ⌊x⌋<x0≤x 使得 f(x0)=y.因为 y∈Z,所以 x0∈Z,这与 ⌊x⌋ 的定义矛盾.故而,等号成立,即 ⌊f(x)⌋=⌊f(⌊x⌋)⌋.

最后是一组关于带有取整函数的求和式的结论:(x∈R, n∈Z, m∈Z+)

  • n=⌊n2⌋+⌈n2⌉.
  • n=⌊nm⌋+⌊n+1m⌋+⋯+⌊n+m−1m⌋.
  • n=⌈nm⌉+⌈n−1m⌉+⋯+⌈n−m+1m⌉.
  • ⌊mx⌋=⌊x⌋+⌊x+1m⌋+⋯+⌊x+m−1m⌋.
  • ⌈mx⌉=⌈x⌉+⌈x−1m⌉+⋯+⌈x−m−1m⌉.
  • 当 m⟂n 时,∑k=1m−1⌊knm⌋=12(n−1)(m−1).
  • 当 m⟂n 时,∑k=1m−1⌈knm⌉=12(n+1)(m−1).

这些乃至更一般的类似形式求和式的推导可以参考 类欧几里得算法 页面.

取整函数的更多性质以及应用可以参考如下页面:

参考资料与注释

  • 潘承洞,潘承彪.初等数论.北京大学出版社.
  • Floor and ceiling functions - Wikipedia
  • Graham, Ronald L., Donald E. Knuth, and Oren Patashnik. "Concrete mathematics: a foundation for computer science." (1989).