初等数论笔记
fengxiaot Lv4

一元多项式环理论中有许多概念和数论相通,尤其是整除关系、辗转相除法、不可约多项式部分。通过考察对比,可以对环的概念认知更加深刻,同时引出环同态、欧几里得整环等概念。而且数论是基础性的知识,在高中数学竞赛和信息竞赛都有涉及,值得恶补一番!


整除

定义

任给两个整数 a,ba,b,其中 b0b \neq 0,如果存在一个整数 qq 使得等式

a=bqa=bq

成立,则称 bb 整除 aa,记作 bab\mid a,并称 bbaa因数aabb倍数

值得一提的是,整除在 LaTeX\LaTeX 中应当以 \mid 指令来输入[1],而不是直接输入单竖线 | 。区别在于 \mid 能提供合适间隙。同样,不整除符号 \nmid 应当用 \nmid 指令输入。

性质

  • 传递性:若 bab \mid a,且 cac \mid a,则 bab\mid a

  • 加减封闭:若 bab \mid a,且 bcb \mid c,则 b(a±c)b \mid (a \pm c) ;更进一步地,b(au+cv)b \mid (au+cv),其中 u,vu,v 为任意整数。

  • 有序性:若 bab \mid a,则或者 a=0a=0,或者 ba|b| \le |a|;这意味着,若 bab \mid aaba \mid b ,则 a=b|a|=|b|

  • 成对因子:若 bab \mid aa0a \neq 0,则 aba\frac{a}{b} \mid a

  • 带余除法:设 a,ba,b 为整数,b>0b>0,则存在唯一的整数 qqrr,使得

    a=bq+r,0r<ba=bq+r,\,0\le r < b

    qq 叫做 aabb 除得的不完全商rr 称为余数

例题

  1. 对于十进制正整数 nn,求证:它能够被 99 整除的充要条件是各数位上的数字之和为 99 的倍数[2]


最大公因数

定义

a1,a2,,ana_1,a_2,\cdots,a_nnn 个不全为 00 的整数。若整数 dd 是它们之中每一个的因数,则 dd 就叫做 a1,a2,,ana_1,a_2,\cdots,a_n 的一个公因数。由性质 33,公因数只有有限多个。取其中最大的一个称为 a1,a2,,ana_1,a_2,\cdots,a_n最大公因数,记作 gcd(a1,a2,,an)\gcd (a_1,a_2,\cdots,a_n)。在不引起混淆的情况下,简记为 (a1,a2,,an)(a_1,a_2,\cdots,a_n)。特殊地,若 (a1,a2,,an)=1(a_1,a_2,\cdots,a_n)=1,则称 a1,a2,,ana_1,a_2,\cdots,a_n 互素[3]

最大公因数的英文是 Greatest Common Divisor,这就是缩写为 gcd\gcd 的原因。

辗转相除法

a,ba,b 是不全为 00 的整数,且 a=bq+ra=bq+r,则 (a,b)=(b,r)(a,b)=(b,r)

1
2
3
4
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}

辗转相除法是深刻的性质,能作辗转相除法的整环称为欧几里得整环。

裴蜀定理

定理

a,ba,b 是不全为零的整数,则存在整数 x,yx,y,使得 ax+by=(a,b)ax+by=(a,b)

构造性证明

利用辗转相除法[4]

a,ba,b 任何一个等于 00,不妨设 b=0b=0,则 (a,b)=a(a,b)=a 。这时定理显然成立。

a,b0a,b \neq 0,由于 (a,b)=(a,b)(a,b)=(a,-b),不妨设 a>b0a>b \ge 0

要证存在整数 x,yx,y 使得 ax+by=(a,b)ax+by=(a,b),即证 a(a,b)x+b(a,b)y=1\dfrac{a}{(a,b)}x+\dfrac{b}{(a,b)}y=1

a1=a(a,b),b1=b(a,b)a_1=\dfrac{a}{(a,b)},b_1=\dfrac{b}{(a,b)},即证满足该关系的两个数 a1,b1a_1,b_1,总存在整数 x,yx,y,使得 a1x+b1y=1a_1 x+b_1 y=1

引理:已知 a,ba,b 为正整数,则 gcd(a(a,b),b(a,b))=1\gcd\left(\dfrac{a}{(a,b)},\dfrac{b}{(a,b)}\right)=1

引理的证明:利用反证法。假设 d>1\exist d>1,使得 da(a,b)d \:\: \biggm| \dfrac{a}{(a,b)}da(a,b)d \:\: \biggm| \dfrac{a}{(a,b)},则有 d(a,b)ad(a,b) \mid ad(a,b)bd(a,b) \mid b 。而 d(a,b)>(a,b)d(a,b)>(a,b),这意味着 d(a,b)d(a,b) 成为了新的最大公因数,与 (a,b)(a,b) 的定义矛盾。故 d=1d=1,即它们互素。

于是根据引理,我们得知 a1,b1a_1,b_1 互素。

下面考虑辗转相除法的运算过程,其计算 a1,b1a_1,b_1 最大公因数最后得到的结果应当为 11,即

gcd(a1,b1)=gcd(b1,r1)=gcd(r1,r2)==gcd(rn1,rn)=gcd(rn,rn+1)=1\gcd\left(a_{1}, b_{1}\right)=\gcd\left(b_{1}, r_{1}\right)=\gcd\left(r_{1}, r_{2}\right)=\cdots=\gcd\left(r_{n-1}, r_{n}\right)=\gcd(r_n,r_{n+1})=1

根据上面的代码,循环在 rn+1=0r_{n+1}=0 时退出,此时 rn=1r_n=1 。写出带余除法递推式:

a1=q1b1+r1b1=q2r1+r2r1=q3r2+r3rn3=qn1rn2+rn1rn2=qnrn1+rnrn1=qn+1rn\begin{aligned} a_{1}&=q_{1} b_1+r_{1} \\ b_{1}&=q_{2} r_{1}+r_{2} \\ r_{1}&=q_{3} r_{2}+r_{3} \\ &\cdots\\ r_{n-3}&=q_{n-1} r_{n-2}+r_{n-1} \\ r_{n-2}&=q_{n} r_{n-1}+r_{n} \\ r_{n-1}&=q_{n+1}r_{n} \end{aligned}

写成矩阵形式

[a1b1]=[q1110][b1r1]\begin{bmatrix} a_1 \\ b_1 \end{bmatrix} = \begin{bmatrix} q_1 & 1\\ 1 & 0 \end{bmatrix}\begin{bmatrix} b_1 \\ r_1 \end{bmatrix}

[b1r1]=[q2110][r1r2]\begin{bmatrix} b_1 \\ r_1 \end{bmatrix} = \begin{bmatrix} q_2 & 1\\ 1 & 0 \end{bmatrix}\begin{bmatrix} r_1 \\ r_2 \end{bmatrix}

[r1r2]=[q3110][r2r3]\begin{bmatrix} r_1 \\ r_2 \end{bmatrix} = \begin{bmatrix} q_3 & 1\\ 1 & 0 \end{bmatrix}\begin{bmatrix} r_2 \\ r_3 \end{bmatrix}

\vdots

[rn2rn1]=[qn110][rn1rn]\begin{bmatrix} r_{n-2} \\ r_{n-1} \end{bmatrix} = \begin{bmatrix} q_n & 1\\ 1 & 0 \end{bmatrix}\begin{bmatrix} r_{n-1} \\ r_{n} \end{bmatrix}

[rn1rn]=[qn+1110][rnrn+1]=[qn+1110][10]\begin{bmatrix} r_{n-1} \\ r_{n} \end{bmatrix} = \begin{bmatrix} q_{n+1} & 1\\ 1 & 0 \end{bmatrix}\begin{bmatrix} r_{n} \\ r_{n+1} \end{bmatrix} = \begin{bmatrix} q_{n+1} & 1\\ 1 & 0 \end{bmatrix}\begin{bmatrix} 1 \\ 0 \end{bmatrix}

将下一个矩阵形式代入上一个,得到

[a1b1]=M[10]\begin{bmatrix} a_1 \\ b_1 \end{bmatrix} = M \begin{bmatrix} 1 \\ 0 \end{bmatrix}

其中

M=[q1110][q2110][qn+1110]M=\begin{bmatrix} q_1 & 1\\ 1 & 0 \end{bmatrix}\begin{bmatrix} q_2 & 1\\ 1 & 0 \end{bmatrix} \cdots\begin{bmatrix} q_{n+1} & 1\\ 1 & 0 \end{bmatrix}

并且 detM=(1)n+1\det M = (-1)^{n+1}。设

M=[λμτσ]M=\begin{bmatrix}\lambda & \mu \\ \tau & \sigma\end{bmatrix}

由于 qiq_i 是整数,由矩阵乘法,λ,τ,μ,σ\lambda,\tau,\mu,\sigma 也为整数。进而得到

[a1b1]=[λμτσ][10]=[λτ]\begin{bmatrix} a_1 \\ b_1 \end{bmatrix} = \begin{bmatrix}\lambda & \mu \\ \tau & \sigma\end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} \lambda \\ \tau \end{bmatrix}

因此 λ=a1,τ=b1\lambda =a_1, \tau=b_1,即

M=[a1μb1σ]M=\begin{bmatrix}a_1 & \mu \\ b_1 & \sigma \end{bmatrix}

由于 detM=(1)n+1\det M = (-1)^{n+1},因此可得

a1σb1μ=(1)n+1a_1 \sigma - b_1 \mu =(-1)^{n+1}

这样一来,对于要解的不定方程 a1x+b1y=1a_1 x+b_1 y=1,取 x=σ,y=μx=\sigma,y=-\mux=σ,y=μx=-\sigma,y=\mu 中的一组即为不定方程的解。

非构造性证明

参看维基百科

推论

  1. 对于 x,yZ\forall x,y \in \Zf(x,y)=ax+byf(x,y)=ax+by 的最小正整数取值为 (a,b)(a,b)
  2. a,ba,b 是给定的不全为 00 的整数,则不定方程/线性丢番图方程 ax+by=max+by=m,有整数解的充分必要条件(a,b)m(a,b) \mid m
  3. 两个整数 a,ba,b 互素的充分必要条件是存在整数 x,yx,y,使得 ax+by=1ax+by=1
  4. 存在无穷多组 (x,y)(x,y),使得 ax+by=(a,b)ax+by=(a,b) 。并且当 ab>0ab>0 时,x,yx,y 异号。

性质

  • ma,mbm \mid a, \, m \mid b,则 m(a,b)m \mid (a,b),即 a,ba,b 的任何一个公因数都是其最大公因数的因数;

  • (a,m)=1,(b,m)=1(a,m)=1,\, (b,m)=1,则 (ab,m)=1(ab,m)=1,即与一个固定整数互素的整数之集关于乘法封闭;

    进而,若 (a,b)=1(a,b)=1,则 k,l>0\forall k,l>0,都有 (ak,bl)>0(a^k,b^l)>0

  • bacb \mid ac,若 (b,c)=1(b,c)=1,则 bab \mid a

  • a,ba,b 互素,且 ab=mk(k2)ab=m^k\,(k \ge 2),则 a,ba,b 都是一个整数的 kk 次幂;

    一般地,若 a1,a2,,ana_1, a_2, \cdots, a_n 互素,且 a1a2an=mka_1 a_2 \cdots a_n = m^k,则 a1,a2,,ana_1, a_2, \cdots, a_n 都是一个整数的 kk 次幂。

例题

  1. nZ,\forall n \in \Z, 求证:12n+59n+4\dfrac{12n+5}{9n+4} 是既约分数。

  2. nn 是正整数,求证:(n!+1,(n+1)!+1)=1(n!+1,(n+1)!+1)=1

  3. bacb \mid ac,若 (b,c)=1(b,c)=1,求证: bab \mid a

  4. (a,b)=1(a,b)=1,求证:(a2+b2,ab)=1(a^2+b^2,ab)=1

  5. 设正整数 a,b,ca,b,c 的最大公因数为 11,并且 abab=c\dfrac{ab}{a-b}=c,求证:aba-b 是一个完全平方数。

  6. 两种不同面值 a,ba,b 的硬币,满足 a,ba,b 互素,硬币数量不限,求证:它们不能组合出的最大面额是 ababab-a-b 。例如,33 元和 77 元不能支付的价格有 1,2,4,5,8,111,2,4,5,8,11 元,所以不能组合出的面额中最大是 1111 元。[5] [6]


最小公倍数

定义

a1,a2,,ana_1,a_2,\cdots,a_nnn 个整数。若整数 mm 是它们之中每一个的倍数,则 mm 就叫做 a1,a2,,ana_1,a_2,\cdots,a_n 的一个公倍数。在一切公倍数中最小的正数叫做最小公倍数,记作 lcm(a1,a2,,an)\operatorname{lcm} (a_1,a_2,\cdots,a_n)。在不引起混淆的情况下,简记为 [a1,a2,,an][a_1,a_2,\cdots,a_n]

最小公倍数的英文是 Least Common Multiple,这就是缩写为 lcm\mathrm{lcm} 的原因。

定理

两个整数 a,ba,b 的最大公因数和最小公倍数满足

(a,b)[a,b]=ab(a,b)[a,b]=|ab|

性质

  • a,ba,b 的任一公倍数都是 [a,b][a,b] 的倍数;
  • a1,a2,,ana_1, a_2, \cdots ,a_n 两两互素,则有

[a1,a2,,an]=a1a2an[a_1,a_2,\cdots,a_n] = |a_1 a_2 \cdots a_n|


素数

定义

一个大于 11 的整数,如果它的正因数只有 11 和它本身,就叫做素数。否则叫做合数。

性质

  • nn 是大于 11 的整数,则 nn 的除 11 以外的最小正因数 qq 是素数。
  • pp 是素数,nn 是任意一个整数,则要么 pnp \mid n,要么 (p,n)=1(p,n)=1
  • pp 是素数,a,ba,b 是整数,pabp \mid ab,则 pap \mid apbp \mid b 。特别地,若 panp \mid a^n,则 pap \mid a

算术基本定理 / 唯一分解定理

任意一个大于 11 的整数 nn 能够唯一地分解为

n=p1α1p2α2pkαkn=p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k}

其中 pi<pj(i<j)p_i<p_j (i<j) 是素数。

并且 nn 的全部正约数为

d=p1β1p2β2pkβk(αiβi0)d =p_1^{\beta_1}p_2^{\beta_2}\cdots p_k^{\beta_k} \> (\alpha_i \ge \beta_i \ge 0)

素数的判定

考虑因数成对出现,因此只需判定 [1,a][1,\sqrt{a}] 即可。

1
2
3
4
5
6
bool isPrime(a) {
if (a < 2) return 0;
for (int i = 2; i * i <= a; ++i)
if (a % i == 0) return 0;
return 1;
}

素数的分布

素数有无穷多个

用反证法证明。假设素数只有有限多个,设全体素数为 p1,p2,,pkp_1,p_2, \cdots, p_k 。考虑数 N=p1p2pk+1N=p_1 p_2 \cdots p_k +1 。显然 N>1N>1,于是根据第一条性质,取它的最小正因数 p>1p>1,则一定有 p{p1,p2,,pk}p \in \{p_1,p_2, \cdots, p_k\}。于是 pp1p2pkp\mid p_1 p_2 \cdots p_k,又因为 p(p1p2pk+1)p \mid (p_1 p_2 \cdots p_k+1),所以 NNN1N-1 有公因数 pp,这与 NNN1N-1 互素矛盾。

素数计数函数

素数计数函数是一个用来表示小于或等于某个实数 xx 的素数的个数的函数,记作 π(x)\pi(x)

x+x \rarr +\infty 时,π(x)xlnx\pi(x) \sim \dfrac{x}{\ln x}

埃拉托斯特尼筛法

要得到自然数 nn 以内的全部素数,必须把不大于 n\sqrt{n} 的所有素数的倍数剔除,剩下的就是素数。

1
2
3
4
5
6
7
8
int n;
vector<char> is_prime(n + 1, true);
is_prime[0] = is_prime[1] = false;
for (int i = 2; i * i <= n; i++) {
if (is_prime[i]) {
for (int j = i * i; j <= n; j += i) is_prime[j] = false;
}
}

例题

  1. 求证:对于任意给定的正整数 n>1n>1,都存在连续 nn 个合数。

  2. 若整数 a,ba,b 满足 2a2+a=3b2+b2a^2+a=3b^2+b,求证: aba-b2a+2b+12a+2b+1 都是完全平方数。[7]

  3. 求证:两个连续正整数之积不能是完全平方,也不能是完全立方。[8]


同余

定义

nn 是给定的正整数,若整数 a,ba,b 满足 n(a,b)n \mid (a,b),则称 aabbnn 同余,记作

ab(modn)a \equiv b \pmod n

n(ab)n \nmid (a-b),则称 aabbnn 不同余,记作

a≢b(modn)a \not\equiv b \pmod n

性质

  • 反身性:aa(modn)a \equiv a \pmod n
  • 对称性:若 ab(modn)a \equiv b \pmod n,则 ba(modn)b \equiv a \pmod n
  • 传递性:若 ab(modn)a \equiv b \pmod nbc(modn)b \equiv c \pmod n,则 ac(modn)a \equiv c \pmod n
  • 同余式相加:若 ab(modn)a \equiv b \pmod ncd(modn)c \equiv d \pmod n,则 a±cb±d(modn)a \pm c \equiv b \pm d \pmod n
  • 同余式相乘:若 ab(modn)a \equiv b \pmod ncd(modn)c \equiv d \pmod n,则 acbd(modn)ac \equiv bd \pmod n
  • 互素消去律:若 acbc(modn)ac \equiv bc \pmod n,且 (c,n)=1(c,n)=1,则 ab(modn)a \equiv b \pmod n

推论

  • ab(modm)a \equiv b \pmod m,则 (a,m)=(b,m)(a,m)=(b,m)
  • pp 是素数,则 (a+b)pap+bp(modm)(a+b)^p \equiv a^p +b^p \pmod m
  • 由二项式定理,an(amk)n(modm)a^n \equiv (a-mk)^n \pmod m

例题

  1. AA 是十进制数 444444444444^{4444} 的个位数字之和,BBAA 的各位数字之和,求 BB 的个位数字之和。[9]

  2. 求证:对于任意自然数 nn11987+21987++n19871^{1987}+2^{1987}+\cdots+n^{1987} 不能被 n+2n+2 整除。



  1. K.R. (2010, July 28). \mid, | (vertical bar), \vert, \lvert, \rvert, \divides. TeX - LaTeX Stack Exchange. https://tex.stackexchange.com/questions/498/mid-vertical-bar-vert-lvert-rvert-divides ↩︎

  2. 余红兵. (2012). 数论 (2nd ed., Vol. 3). 华东师范大学出版社. ↩︎

  3. 柯召., & 孙琦. (2001). 数论讲义 (3rd ed., Vol. 3). 高等教育出版社. ↩︎

  4. OI Wiki. (2021, February 8). 裴蜀定理 - OI Wiki. https://oi-wiki.org/math/bezouts/ ↩︎

  5. CCF NOI竞赛委员会. (2017, November 11). [NOIP2017 提高组] 小凯的疑惑 - 洛谷. 洛谷. https://www.luogu.com.cn/problem/P3951 ↩︎

  6. 张君达. 数论基础[M]. 北京科学技术出版社, 2002: 86-87. ↩︎

  7. 余红兵. (2012). 素数及唯一分解定理. In 数论 (2nd ed., p. 15). 华东师范大学出版社. ↩︎

  8. 余红兵. (2012). 不定方程. In 数论 (2nd ed., pp. 20–21). 华东师范大学出版社. ↩︎

  9. 张君达. 数论基础[M]. 北京科学技术出版社, 2002: 110-111. ↩︎