跳到正文
手册 · 第 2 章

数论

质数与因数、最大公因数与最小公倍数、模运算(欧拉定理、费马小定理、中国剩余定理)、不定方程、进制与 p 进赋值。

原书第 33–45 页 · 44 个条目

2.1 质数

在 YouTube 上打开
在 YouTube 上打开

注 2.1.2

要判断一个数 nn 是不是质数,只需要用小于或等于 n\sqrt{n} 的质数去试除。

去学习:注 21.0.2

原书第 33 页已数值验证

概念 2.1.3 · 质因数分解

质因数分解就是把一个数写成若干个质数的乘积。

例:2121 的质因数分解是 3×73 \times 7,6060 的质因数分解是 22×3×52^2 \times 3 \times 5。

去学习:概念 21.0.3 · 质因数分解

原书第 33 页已数值验证

定理 2.1.4 · 一个数的因数个数

如果一个数的质因数分解是

p1e1×p2e2×⋯×pkek,p_1^{e_1} \times p_2^{e_2} \times \cdots \times p_k^{e_k},

那么这个数的因数个数是

(e1+1)(e2+1)⋯(ek+1).(e_1 + 1)(e_2 + 1)\cdots(e_k + 1).

去学习:定理 21.0.4 · 一个数的因数个数

原书第 34 页已数值验证

注 2.1.5

求一个数的因数个数:

  1. 求出这个数的质因数分解。
  2. 把每个指数加 11。
  3. 把它们乘起来。

去学习:注 21.0.5

原书第 34 页

概念 2.1.6 · 整除判定法则

除数 法则
22 个位数字是偶数
33 各位数字之和能被 33 整除
44 末 22 位能被 44 整除
55 个位数字是 00 或 55
66 能被 22 和 33 整除
77 不断减去 77 的倍数,直到剩下一个小数,看它能否被 77 整除
88 末 33 位能被 88 整除
99 各位数字之和能被 99 整除
1010 个位数字是 00
1111 把奇数位置上的数字相加(OO),把偶数位置上的数字相加(EE)。如果 ∣O−E∣\lvert O - E \rvert 能被 1111 整除,那么这个数也能被 1111 整除
1212 能被 33 和 44 整除
1515 能被 33 和 55 整除

去学习:概念 22.0.1 · 整除判定法则第 22.0a 节 整除判定法则

原书第 34 页已数值验证

概念 2.1.7 · 尾数周期

要求一个很大的幂 aba^b 的末一位(或末几位)数字,可以试试找规律:先算出 aba^b 的前几个值,就会发现 bb 很大时规律在不断重复。

去学习:概念 24.0.4 · 尾数周期第 24.0a 节 同余与周期

原书第 35 页

2.2 整数数列

在 YouTube 上打开

2.3 回文数

在 YouTube 上打开

2.4 最大公因数与最小公倍数

在 YouTube 上打开
在 YouTube 上打开
在 YouTube 上打开
在 YouTube 上打开

概念 2.4.3

在 mm 和 nn 的质因数分解中,对每个质因数取较低的指数,就得到 gcd⁡(m,n)\gcd(m, n)。

在 mm 和 nn 的质因数分解中,对每个质因数取较高的指数,就得到 lcm⁡(m,n)\operatorname{lcm}(m, n)。

去学习:概念 23.0.3 · 用质因数分解求最大公因数和最小公倍数

原书第 36 页已数值验证

定理 2.4.4

两个数的最大公因数与最小公倍数之积,等于这两个数之积:

gcd⁡(m,n)⋅lcm⁡(m,n)=m⋅n.\gcd(m, n) \cdot \operatorname{lcm}(m, n) = m \cdot n.

去学习:定理 23.0.4 · 最大公因数 × 最小公倍数

原书第 36 页已数值验证

定理 2.4.5

如果两个数有公因数 cc,那么

gcd⁡(ac,bc)=c⋅gcd⁡(a,b).\gcd(ac, bc) = c \cdot \gcd(a, b).

去学习:定理 23.0.5 · 提取公因数

原书第 36 页已数值验证

定理 2.4.6 · 辗转相除法(欧几里得算法)

辗转相除法说的是

gcd⁡(x,y)=gcd⁡(x−ky, y)\gcd(x, y) = \gcd(x - ky,\ y)

其中 x>yx > y,kk 是正整数。

去学习:定理 23.0.6 · 辗转相除法第 23.0b 节 辗转相除法

原书第 36 页已数值验证

注 2.4.7

我们可以反复使用辗转相除法来求大数的最大公因数:每用一次都得到两个更小的数,直到它们小到可以直接看出最大公因数。例如

gcd⁡(186,92)=gcd⁡(186−2⋅92, 92)=gcd⁡(2,92)=gcd⁡(2, 92−2⋅46)=gcd⁡(2,0)=2.\begin{aligned}&\gcd(186, 92) \\ &= \gcd(186 - 2 \cdot 92,\ 92) \\ &= \gcd(2, 92) \\ &= \gcd(2,\ 92 - 2 \cdot 46) \\ &= \gcd(2, 0) = 2.\end{aligned}

去学习:注 23.0.7

原书第 36 页已数值验证

2.5 模运算

在 YouTube 上打开
在 YouTube 上打开
在 YouTube 上打开
在 YouTube 上打开
在 YouTube 上打开

定理 2.5.2

若 a≡x(modn)a \equiv x \pmod{n} 且 b≡y(modn)b \equiv y \pmod{n},则

ab≡xy(modn).ab \equiv xy \pmod{n}.

去学习:定理 24.0.2 · 同余式相乘

原书第 38 页已数值验证

定理 2.5.3

若 a≡x(modn)a \equiv x \pmod{n},则对每个正整数 mm,都有

am≡xm(modn)a^m \equiv x^m \pmod{n}

去学习:定理 24.0.3 · 同余式的乘方

原书第 38 页已数值验证

定理 2.5.4 · 欧拉函数

若 nn 的质因数分解是

p1e1⋅p2e2⋅p3e3⋯pkek,p_1^{e_1} \cdot p_2^{e_2} \cdot p_3^{e_3} \cdots p_k^{e_k},

则

φ(n)=n(1−1p1)(1−1p2)⋯(1−1pk),\begin{aligned}\varphi(n) = n &\left(1 - \frac{1}{p_1}\right)\left(1 - \frac{1}{p_2}\right) \\ &\cdots\left(1 - \frac{1}{p_k}\right),\end{aligned}

其中 φ(n)\varphi(n) 是小于或等于 nn 且与 nn 互质的正整数的个数。

求一个数的欧拉函数值的步骤:

  1. 求出质因数分解。
  2. 对每个质数,算出 1−1pi1 - \frac{1}{p_i},并把它们相乘。
  3. 再把这个积乘以 nn,就得到欧拉函数值。

去学习:定理 24.0.5 · 欧拉函数第 24.0b 节 欧拉定理、费马小定理、威尔逊定理与二项式定理

原书第 38 页已数值验证

定理 2.5.5 · 欧拉定理

aφ(n)≡1(modn)a^{\varphi(n)} \equiv 1 \pmod{n}

成立当且仅当

gcd⁡(a,n)=1.\gcd(a, n) = 1.

去学习:定理 24.0.6 · 欧拉定理

原书第 38 页已数值验证

推论 2.5.6 · 费马小定理

若 pp 是质数且 gcd⁡(a,p)=1\gcd(a, p) = 1(即 p∤ap \nmid a),则

ap−1≡1(modp).a^{p-1} \equiv 1 \pmod{p}.

对质数 pp,反过来也成立:只有当 p∤ap \nmid a 时才有 ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p。注意,这可以由欧拉定理直接得到,因为 φ(p)=p−1\varphi(p) = p - 1。

更正

原书说 ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p“当且仅当 pp 是质数且 gcd⁡(a,n)=1\gcd(a, n) = 1”。其中的 nn 应为 pp,而且这个同余式并不能推出 pp 是质数:2340≡1(mod341)2^{340} \equiv 1 \pmod{341},但 341=11⋅31341 = 11 \cdot 31。定理只是对质数 pp 的单向命题。

去学习:推论 24.0.7 · 费马小定理

原书第 39 页已数值验证

事实 2.5.7

对任意整数 xx,

x2≡0,1(mod3)x^2 \equiv 0, 1 \pmod{3}
x2≡0,1(mod4)x^2 \equiv 0, 1 \pmod{4}

去学习:第 26.0 节 整数方程的解题策略

原书第 39 页已数值验证

概念 2.5.8

若 aa 是 b(modn)b \pmod{n} 的模逆元,则

ab≡1(modn).ab \equiv 1 \pmod{n}.

由于 aa 和 bb 互为逆元 (modn)\pmod{n},我们也记作

a−1≡b(modn)a^{-1} \equiv b \pmod{n}

去学习:概念 24.0.8 · 模逆元

原书第 39 页已数值验证

定理 2.5.9 · 威尔逊定理

对质数 pp,

(p−1)!≡p−1≡−1(modp).(p-1)! \equiv p - 1 \equiv -1 \pmod{p}.
更正

原书给出这个同余式时没有说明 pp 必须是质数。对合数 pp 它不成立:(4−1)!=6≡2(mod4)(4-1)! = 6 \equiv 2 \pmod 4。

去学习:定理 24.0.9 · 威尔逊定理

原书第 39 页已数值验证

定理 2.5.10 · 中国剩余定理

若正整数 xx 满足

x≡a1(modn1)x \equiv a_1 \pmod{n_1}
x≡a2(modn2)x \equiv a_2 \pmod{n_2}
⋮\vdots
x≡ak(modnk)x \equiv a_k \pmod{n_k}

其中 nin_i 两两互质,则 xx 有唯一解 (modn1⋅n2⋅n3⋯nk)\pmod{n_1 \cdot n_2 \cdot n_3 \cdots n_k}。

去学习:定理 24.0.11 · 中国剩余定理第 24.0c 节 中国剩余定理与一次同余式

原书第 40 页已数值验证

注 2.5.11

小心!如果某些 nin_i 有公因数,结论可能不成立,因为这些同余式可能互相矛盾。

去学习:注 24.0.12

原书第 40 页

概念 2.5.12 · 解一次同余式

解由 2 个一次同余式组成的方程组,你可以:

  • 尝试检验,直到找到同时满足两个同余式的值;或者
  • 用代数方法:
    1. 从 2 个同余式 n≡r1(modm1)n \equiv r_1 \pmod{m_1} 和 n≡r2(modm2)n \equiv r_2 \pmod{m_2} 出发,其中 m1m_1 与 m2m_2 互质。
    2. 把它们改写成等式:n=km1+r1n = k m_1 + r_1 和 n=jm2+r2n = j m_2 + r_2。
    3. 让两式模 m2m_2 相等:km1+r1≡r2(modm2)k m_1 + r_1 \equiv r_2 \pmod{m_2},所以 k≡(r2−r1)⋅m1−1(modm2)k \equiv (r_2 - r_1) \cdot m_1^{-1} \pmod{m_2}。
    4. 用尝试检验求出 m1−1(modm2)m_1^{-1} \pmod{m_2} 的值。
    5. 利用 k≡k0(modm2)k \equiv k_0 \pmod{m_2},把它改写成等式:k=m2t+k0k = m_2 t + k_0。
    6. 把它代回 n=km1+r1n = k m_1 + r_1。
    7. 再换回同余式,得到最后的结果 n≡k0m1+r1(modm1m2)n \equiv k_0 m_1 + r_1 \pmod{m_1 m_2}。
更正

原书第 3 步写成 m1≡(r2−r1)⋅k−1(modm2)m_1 \equiv (r_2 - r_1) \cdot k^{-1} \pmod{m_2},第 4 步要求 k−1k^{-1};从 km1+r1≡r2k m_1 + r_1 \equiv r_2 解出 kk,应得 k≡(r2−r1)⋅m1−1k \equiv (r_2 - r_1) \cdot m_1^{-1}。第 1 步和第 5 步还用了未定义的字母 bb、dd(指 m1m_1、m2m_2 以及 kk 模 m2m_2 的值)。

去学习:概念 24.0.13 · 解一次同余式

原书第 40 页已数值验证

概念 2.5.13

对互质的 m1,m2m_1, m_2,方程组

n≡r1(modm1)n \equiv r_1 \pmod{m_1}
n≡r2(modm2)n \equiv r_2 \pmod{m_2}

的解是

n≡r1+m1(r2−r1)⋅i(modm1m2)\begin{aligned}n \equiv{} &r_1 + m_1 (r_2 - r_1) \cdot i \\ &\pmod{m_1 m_2}\end{aligned}

其中 i≡m1−1(modm2)i \equiv m_1^{-1} \pmod{m_2}。

更正

原书印的是 n≡r1+m1(r2−r1)⋅in \equiv r_1 + m_1 (r_2 - r_1) \cdot i,没有写模数;解在模 m1m2m_1 m_2 下唯一(而且需要 m1m_1、m2m_2 互质,m1−1m_1^{-1} 才存在)。

去学习:概念 24.0.14 · 两个同余式的公式

原书第 41 页已数值验证

注 2.5.14

要解 2 个以上的同余式,就每次合并 2 个,直到只剩 1 个同余式。

去学习:注 24.0.15

原书第 41 页

2.6 不定方程

在 YouTube 上打开

概念 2.6.2 · 解不定方程的策略

下面是解不定方程的一些思路。

  • 对不同的数取模。下面两种情况尤其有用:
    1. 证明不定方程没有解,或
    2. 证明解只能是某种特定形式。
  • 对各项可能的取值估界。当解只有有限个时,这一招通常很管用。
  • 利用代数章节里的各种因式分解公式因式分解,求出所有解。
  • 换元,把不定方程化简。
  • 找出哪些量一定是未知数的倍数或因数,并据此改写不定方程。

去学习:概念 26.0.2 · 解不定方程的策略

原书第 42 页

2.7 进制

在 YouTube 上打开
在 YouTube 上打开

定义 2.7.1 · 进制

用 nn 进制表示一个数,和 1010 进制类似,只是不再每满 1010 进到下一个位值,而是每满 nn 就进一位。

各位数字为 am,am−1,…,a2,a1,a0a_m, a_{m-1}, \ldots, a_2, a_1, a_0 的 nn 进制数可以写成

a0⋅n0+a1⋅n1+a2⋅n2+⋯+am−1⋅nm−1+am⋅nm\begin{aligned}&a_0 \cdot n^0 + a_1 \cdot n^1 + a_2 \cdot n^2 + \cdots \\ &+ a_{m-1} \cdot n^{m-1} + a_m \cdot n^m\end{aligned}

其中每个 aia_i 都是这个数的数字。

去学习:定义 27.0.1 · 进制概念 27.0.2 · $n$ 进制中的位值第 27.0 节 任意进制中的位值

原书第 42 页已数值验证

定理 2.7.2 · 麦乐鸡定理

如果 aa 和 bb 互质,那么不能写成 aa 与 bb 的非负倍数之和的最大整数是

ab−a−bab - a - b

对互质的正整数 a,ba, b,恰好有

(a−1)(b−1)2\frac{(a-1)(b-1)}{2}

个正整数不能写成 ma+nbma + nb 的形式,其中 mm 和 nn 是非负整数。

更正

原书第二句写的是“其中 mm 和 nn 是正整数”;个数 (a−1)(b−1)2\frac{(a-1)(b-1)}{2} 对应的是非负的 m,nm, n。(取 a=3a = 3,b=5b = 5:凑不出的是 1,2,4,71, 2, 4, 7 这 44 个数;若要求 m,nm, n 为正,3,5,6,9,103, 5, 6, 9, 10 也凑不出。)

去学习:定理 28.2.1 · 麦乐鸡定理第 28.2 节 麦乐鸡定理

原书第 43 页已数值验证

注 2.7.3

这个定理适用于“用 33 分和 55 分硬币凑不出的最大金额”这类问题。

去学习:注 28.2.2

原书第 43 页

2.8 p 进赋值

定义 2.8.1

vpv_p 记号。 vp(n)v_p(n) 定义为 nn 的质因数分解中质数 pp 的指数。

例如,v5(75)=2v_5(75) = 2,因为 75=3⋅5275 = 3 \cdot 5^2 含有 22 个因数 55;v2(27)=0v_2(27) = 0,因为 2727 是奇数,不含因数 22。

去学习:第 22.0b 节 勒让德公式

原书第 43 页已数值验证

定理 2.8.2 · Vp 乘方公式

vp(nk)=k⋅vp(n)v_p(n^k) = k \cdot v_p(n)

说白了:nkn^k 中 pp 的指数,是 nn 中 pp 的指数的 kk 倍。

去学习:第 22.0b 节 勒让德公式

原书第 43 页已数值验证

定理 2.8.3 · Vp 乘积公式

vp(ab)=vp(a)+vp(b)v_p(ab) = v_p(a) + v_p(b)

说白了:abab 中 pp 的指数 = aa 中 pp 的指数 + bb 中 pp 的指数。

去学习:第 22.0b 节 勒让德公式

原书第 44 页已数值验证

定理 2.8.4 · Vp 除法公式

vp(ab)=vp(a)−vp(b)v_p\left(\frac{a}{b}\right) = v_p(a) - v_p(b)

说白了:ab\frac{a}{b} 中 pp 的指数 = aa 中 pp 的指数 − bb 中 pp 的指数。

去学习:第 22.0b 节 勒让德公式

原书第 44 页已数值验证

定理 2.8.5 · Vp 求和公式

若 vp(a)≠vp(b)v_p(a) \ne v_p(b),则

vp(a+b)=min⁡(vp(a),vp(b)).v_p(a + b) = \min(v_p(a), v_p(b)).

若 vp(a)=vp(b)v_p(a) = v_p(b),则

vp(a+b)≥min⁡(vp(a),vp(b)).v_p(a + b) \ge \min(v_p(a), v_p(b)).

原书第 44 页已数值验证

定理 2.8.6 · 奇质数的升幂定理(LTE)

对奇质数 pp:若

a≡b≢0(modp),a \equiv b \not\equiv 0 \pmod{p},

则

vp(an−bn)=vp(a−b)+vp(n).v_p(a^n - b^n) = v_p(a - b) + v_p(n).

说白了:如果 aa 和 bb 除以 pp 的余数相同,并且这个余数不是 00,那么 an−bna^n - b^n 中 pp 的指数 =(a−ba - b 中 pp 的指数)+(nn 中 pp 的指数)。

原书第 44 页已数值验证

注 2.8.7

一定要注意条件 a≡b≢0(modp)a \equiv b \not\equiv 0 \pmod p!还要记住,p=2p = 2 不适用这个公式!有时不能直接对指数用升幂定理,这时可以改写含指数的项,再加以应用。

原书第 45 页已数值验证

定理 2.8.8 · 质数 2 的升幂定理(LTE)

对奇数 a,ba, b 和正偶数 nn,

v2(an−bn)=v2(a2−b2)+v2(n)−1.\begin{aligned}&v_2(a^n - b^n) \\ &= v_2(a^2 - b^2) + v_2(n) - 1.\end{aligned}

说白了:an−bna^n - b^n 中 22 的指数 =(a2−b2a^2 - b^2 中 22 的指数)+(nn 中 22 的指数)− 11。

(若 nn 是奇数,则 v2(an−bn)=v2(a−b)v_2(a^n - b^n) = v_2(a - b)。)

更正

原书给出这个公式时没有任何条件。它要求 aa、bb 为奇数且 nn 为偶数:取 a=3a = 3,b=1b = 1,n=1n = 1,公式会给出 v2(2)=v2(8)+0−1=2v_2(2) = v_2(8) + 0 - 1 = 2,但 v2(2)=1v_2(2) = 1。原书的文字解释还把“nn 中 22 的指数”写成了“nn 中 pp 的指数”。

原书第 45 页已数值验证

定理 2.8.9 · 勒让德定理

vp(n!)=⌊np⌋+⌊np2⌋+⋯v_p(n!) = \left\lfloor \frac{n}{p} \right\rfloor + \left\lfloor \frac{n}{p^2} \right\rfloor + \cdots

说白了:n!n! 中因数 pp 的个数 = 不超过 nn 的 pp 的倍数的个数 + 不超过 nn 的 p2p^2 的倍数的个数 + ⋯\cdots

去学习:定理 22.0.2 · 勒让德定理第 22.0b 节 勒让德公式

原书第 45 页已数值验证