整除

整除

整除:设 a,b∈Za,b\in \Z 且 a≠0a\neq 0 ,若 ∃q∈Z\exist q\in \Z ,使得 b=aqb=aq,那么称 aa 整除 bb ,记作 a∣ba\mid b ,并且称 aa 是 bb 的因数(约数), bb 是 aa 的倍数。如果这样的整数 qq 不存在,就称 aa 不整除 bb ,记作 a∤ba\nmid b 。

例如,6∣−24,−4∣56,8∣0,−4∤146\mid -24,\quad -4\mid 56,\quad 8\mid 0,\quad -4\nmid 14

基本性质:设 a,b,c∈Za,b,c\in\Z

  1. a∣b  ⟺  −a∣b  ⟺  a∣−ba\mid b \iff -a\mid b \iff a\mid -b;
  2. 若 a∣b, b∣aa\mid b,\ b\mid a ,则 a=±ba=\pm b;
  3. 若 a∣b, b∣ca\mid b,\ b\mid c ,则 a∣ca\mid c ;
  4. 若 a∣b, a∣ca\mid b,\ a\mid c ,则 ∀x,y∈Z\forall x,y\in\Z 恒有 a∣bx+cya\mid bx+cy ;
  5. 若 m∈Z,m≠0m\in\Z,m\ne0 ,则 a∣b  ⟺  ma∣mba\mid b \iff ma\mid mb ;
  6. 若 b≠0b\ne0 ,则 a∣b  ⟹  ∣a∣⩽∣b∣a\mid b \implies |a|\leqslant |b| ;
  7. 若 a≠0,b=qa+ca\ne0, b=qa+c ,那么 a∣b  ⟺  a∣ca\mid b \iff a\mid c ;

带余除法

带余除法:设 a,b∈Za,b\in \Z 且 b≠0b\neq 0 ,则存在唯一的一对 q,r∈Zq,r\in\Z ,使得

a=bq+r,0⩽r<∣b∣a=bq+r,\quad 0\leqslant r<|b|

从数轴上可以直观的看到

现在证明 q,rq,r 的唯一性。我们假定 a=bq1+r1=bq2+r2a=bq_1+r_1=bq_2+r_2,即 r1−r2=b(q2−q1)r_1-r_2=b(q_2-q_1) 。于是 b∣r1−r2b\mid r_1-r_2 ,而 −∣b∣<r1−r2<∣b∣-|b|<r_1-r_2<|b| ,因此 r1−r2=0r_1-r_2=0 即 r1=r2r_1=r_2 ,从而 q1=q2q_1=q_2 。所以 q,rq,r 是唯一的。

我们把带余除法中唯一的 q,rq,r 分别叫做 aa 除以 bb 的商(quotien)和余数(remainder)。显然,aa 能被 bb 整除当且仅当余数 r=0r=0 。

素数

定义:除了1和它自身外,不能被其它正整数整除的正整数叫做素数,不是素数又不是1的正整数叫做合数。

由定义知,3,13,31是素数,12,14,81是合数,1既不是素数也不是合数。显然,2是唯一的偶素数,也是最⼩的素数。

容易发现,除了1以外,每个正整数的最⼩正因数 pp 是⼀个素数。任何⼤于1的整数,总可分解为⼀些素数的乘积。通常,把⼀个正整数的素数因数叫做它的素因数。

素数有无限多个:假设素数有有限个 P={p1,p2,⋯ ,pk}\mathbb P=\{p_1,p_2,\cdots,p_k\} ,记这 kk 个素数的乘积为 N=p1p2⋯pkN=p_1p_2\cdots p_k ,由此可知,∀pi∈P\forall p_i\in \mathbb P 有 pi∣Np_i\mid N ,但是 pi∤N+1p_i\nmid N+1 ,所以 N+1N+1 一定能被某个素数整除,这就产生了矛盾。因此,素数有无限多个。

素数判别法:如果大于1的整数 aa 不能被所有不超过 a\sqrt{a} 的素数整除,那么 aa 一定是素数。

这个判别法实际上给出了⼀种寻找素数的有效⽅法,称为Eratosthenes筛法。

例如:找出1-100间的所有素数。

解:只需把1-100间的合数去掉即可。对于1-100间的每个合数 aa ,它一定能被某个不超过 a\sqrt{a} 的素数整除,从而能被不超过 100=10\sqrt{100}=10 的素数整除。我们知道,不超过10的素数为 2,3,5,7。接下来,我们去掉2,3,5,7和他们的倍数,剩下的就是不超过100的全部素数。

最大公约数

定义:给定两个整数 a,ba,b,必有公共的因数,叫做它们的公约数。当 a,b≠0a,b\neq0 时,在有限个公约数中最⼤的⼀个叫做 a,ba,b 的最⼤公约数(Greatest Common Divisor),记作 gcd⁡(a,b)\gcd(a,b) 。如果 gcd⁡(a,b)=1\gcd(a,b)=1 ,那么称 a,ba,b 是互素(relatively prime)的。

例如,-8和14的公约数为1,-1,2,-2,所以 gcd⁡(−8,14)=2\gcd(-8,14)=2 。

类似的,我们可以定义三个及以上非零整数的最⼤公约数 gcd⁡(a1,a2,⋯ ,an)\gcd(a_1,a_2,\cdots,a_n) 和互素。

定理:设余数 r=a mod br=a\bmod b ,那么 gcd⁡(a,b)=gcd⁡(b,r)\gcd(a,b)=\gcd(b,r) 。

证明:设带余除法 a=qb+ra=qb+r 。若 dd 是 a,ba,b 的公约数 ,即 d∣a, d∣bd\mid a,\ d\mid b,则 d∣r=a−qbd\mid r=a-qb ,从而 dd 为 b,rb,r 的公约数。同理可证 b,rb,r 的公约数也是 a,ba,b 的公约数。因此得证。

按照这个思路,我们来求 gcd⁡(1840,667)\gcd(1840,667) 。因为

1840=667×2+506,667=506×1+161,506=161×3+231840=667\times 2+506,\\ 667=506\times1+161,\\ 506=161\times3+23

于是

gcd⁡(1840,667)=gcd⁡(667,506)=gcd⁡(506,161)=gcd⁡(161,23)=23\gcd(1840,667)=\gcd(667,506)=\gcd(506,161)=\gcd(161,23)=23

这种求最大公约数的⽅法,叫做辗转相除法,也称 Euclid 算法,它是⼀种古⽼⽽有效的算法。下面我们给出辗转相除法的一般形式

Euclidean_Algorithm

对于三个整数的最⼤公约数,可以转化为求两次两个整数的最⼤公约数

gcd⁡(a,b,c)=gcd⁡(gcd⁡(a,b),c)\gcd(a,b,c)=\gcd(\gcd(a,b),c)

定理:设 a,b≠0a,b\neq 0 ,则 ∃m,n∈Z\exist m,n\in\Z 使得 gcd⁡(a,b)=am+bn\gcd(a,b)=am+bn 。

证明:不妨设 b>0b>0,对 a,ba,b 用带余除法

a=bq1+r1(0⩽r1<b)a=bq_1+r_1\quad (0\leqslant r_1<b)

因为 gcd⁡(a,b)=gcd⁡(b,r1)\gcd(a,b)=\gcd(b,r_1),若 r1=0r_1=0,则 gcd⁡(a,b)=gcd⁡(b,r1)=b\gcd(a,b)=\gcd(b,r_1)=b 。此时有 m=0m=0,n=1n=1 。

若 r1≠0r_1\neq0,对 b,r1b,r_1 用带余除法

b=r1q2+r2(0⩽r2<r1)b=r_1q_2+r_2\quad(0\leqslant r_2<r_1)

且 gcd⁡(b,r1)=gcd⁡(r1,r2)\gcd(b,r_1)=\gcd(r_1,r_2) 。若r2=0r_2=0,则 gcd⁡(a,b)=gcd⁡(r1,r2)=a−bq1\gcd(a,b)=\gcd(r_1,r_2)=a-bq_1 。此时有 m=1m=1,n=−q1n=-q_1 。

若 r2≠0r_2\neq0,对 r1,r2r_1,r_2 用带余除法,依次类推,总能找到符合条件的 m,nm,n 。 这个性质对多于整数情形仍然成立。

推论1:若 a∣bca\mid bc 且 gcd⁡(a,b)=1\gcd(a,b)=1 ,则 a∣ca\mid c 。

证明:因为 gcd⁡(a,b)=1\gcd(a,b)=1 ,故 ∃m,n∈Z\exists m,n\in\Z 使得 am+bn=1am+bn=1 。于是 (ac)m+(bc)n=c(ac)m+(bc)n=c,又因为 a∣ac, a∣bca\mid ac,\ a\mid bc ,所以 a∣(ac)m+(bc)n=ca\mid (ac)m+(bc)n=c 。

推论2:若素数 p∣abp\mid ab ,则 p∣ap\mid a 或 p∣bp\mid b 。

证明:因为 pp 是素数,其正因数只有 1,p1,p ,所以 gcd⁡(p,a)=1\gcd(p,a)=1 或 gcd⁡(p,a)=p\gcd(p,a)=p 。若 gcd⁡(p,a)=1\gcd(p,a)=1 ,由推论1得 p∣bp\mid b 。若 gcd⁡(p,a)=p\gcd(p,a)=p 则 p∣ap\mid a 。

最小公倍数

定义:对于两个⾮零整数 a,ba,b ,⼀定存在⼀个整数,它同时为 a,ba,b 的倍数,这个倍数叫做 a,ba,b 的公倍数。我们把 a,ba,b 的最⼩的正公倍数叫做最⼩公倍数(Least Common Multiple),记作 lcm(a,b)\text{lcm}(a,b) 。

类似的,我们可以定义三个及以上非零整数的最小公倍数 lcm(a1,a2,⋯ ,an)\text{lcm}(a_1,a_2,\cdots,a_n) 。

定理:任意 a,ba,b 的最小公倍数 m=lcm(a,b)m=\text{lcm}(a,b) 一定整除 a,ba,b 的公倍数。

证明:设 nn 是任意一个公倍数,对 m,nm,n 使用带余除法 n=mq+rn=mq+r ,其中 0⩽r<m0\leqslant r< m 。假设 m∤nm\nmid n ,则 r>0r> 0 。由 a∣m, b∣m, a∣n, b∣na\mid m,\ b\mid m,\ a\mid n,\ b\mid n 得 a∣r, b∣ra\mid r,\ b\mid r ,即 rr 也是 a,ba,b 的公倍数。但 r<mr< m ,这与 m=lcm(a,b)m=\text{lcm}(a,b) 矛盾。因此,m∣nm\mid n 。

求得最小公倍数

gcd⁡(a,b)⋅lcm(a,b)=∣ab∣\gcd(a,b)\cdot \text{lcm}(a,b)=|ab|

三个整数的最⼤公约数,总可以转化为求两次两个整数的最⼤公约数

lcm(a,b,c)=lcm(lcm(a,b),c)\text{lcm}(a,b,c)=\text{lcm}(\text{lcm}(a,b),c)

算术基本定理

算术基本定理:任何⼤于1的整数 nn 总可以分解成素因数乘积的形式

n=p1p2⋯prn=p_1p_2\cdots p_r

其中 pip_i 是素数。如果不计分解式中素因数的次序,则这种分解式是惟⼀的,叫做素因数分解式。

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

n=p1m1p2m2⋯psmrn={p_1}^{m_1}{p_2}^{m_2}\cdots{p_s}^{m_r}

称为标准素因数分解式。

证明:下面只证明素因式的唯一性。假定 nn 有两个素因式

n=p1p2⋯pr=q1q2⋯qsn=p_1p_2\cdots p_r=q_1q_2\cdots q_s

由于 p1p_1 是素数,且 p1∣q1q2⋯qsp_1\mid q_1q_2\cdots q_s ,故 p1p_1 整除 q1,q2,⋯ ,qsq_1,q_2,\cdots,q_s 中的某个 qiq_i ,当不计素因数的次序时,总可假定 p1∣q1p_1\mid q_1 ,而 p1,q1p_1,q_1 均为素数,故 p1=q1p_1=q_1 ,于是 p2⋯pr=q2⋯qsp_2\cdots p_r=q_2\cdots q_s 。同理可得 p2=q2p_2=q_2 ,依次类推,最后得 r=sr=s 且 pi=qip_i=q_i 。所以,nn 的素因数分解式是唯一的。

下面我们来看素因数分解式的一个⾮常重要的应⽤。

示例:求解 gcd⁡(720,152)\gcd(720,152) 和 lcm(720,152)\text{lcm}(720,152) 。

解:容易知道

720=24×32×5,152=23×19720=2^4\times 3^2\times 5,\quad 152=2^3\times 19

由此不难得到

gcd⁡(720,152)=23=8,lcm(720,152)=24×32×5×19=13680\begin{aligned} \gcd(720,152)&=2^3=8, \\ \text{lcm}(720,152)&=2^4\times 3^2\times 5\times 19=13680 \end{aligned}

⼀般地,对于整数 a,ba,b ,找出它们所有的互异素因数,然后,将 a,ba,b 表示成这些素因数的幂的乘积,如果其中⼀个素因数在 aa 或 bb 中不出现,就将这个素因数的幂指数写作0,那么 gcd⁡(a,b)\gcd(a,b) 可以表示成这些素因数的幂的乘积,每个素因数的幂指数为其在 aa 与 bb 中的幂指数的最⼩者。⽽ lcm(a,b)\text{lcm}(a,b) 也可以表示成这些素因数幂的乘积,每个素因数的幂指数为其在 aa 与 bb 中的幂指数的最大者。

同余与同余方程

同余

定义:设 n∈Z+,a,b∈Zn\in \Z^+,a,b\in\Z ,如果 a,ba,b 被 nn 除后余数相同,那么称 aa 和 bb 模 nn 同余,记作

a≡b(modn)a\equiv b\pmod n

例如 12≡−6(mod9)12\equiv -6\pmod 9

设 a=nq1+r1, b=nq2+r2a=nq_1+r_1,\ b=nq_2+r_2 。若 a≡b(modn)a\equiv b\pmod n 则 r1=r2r_1=r_2 ,并且 a−b=n(q1−q2)a-b=n(q_1-q_2) ,于是 n∣(a−b)n\mid(a-b) 。反过来,若 n∣a−b=n(q1−q2)+r1−r2n\mid a-b=n(q_1-q_2)+r_1-r_2 ,则 n∣r1−r2n\mid r_1-r_2 ,而 −n<r1−r2<n-n< r_1-r_2< n ,故 r1−r2=0r_1-r_2=0 ,因此 a≡b(modn)a\equiv b\pmod n 。于是我们有

a≡b(modn)  ⟺  n∣a−ba\equiv b\pmod n \iff n\mid a-b

由上式可得同余是等价关系:

  • 自反性: a≡a(modm)a\equiv a\pmod{m}

  • 对称性:若 a≡b(modm)a\equiv b\pmod{m} ,则 b≡a(modm)b\equiv a\pmod{m}

  • 传递性:若 a≡b(modm), b≡c(modm)a\equiv b\pmod{m},\ b\equiv c\pmod{m} ,则 a≡c(modm)a\equiv c\pmod{m}

性质:设 n∈Z+n\in \Z^+,若 a≡b(modn)a\equiv b\pmod n 且 c≡d(modn)c\equiv d\pmod n 则

  1. a+c≡b+d(modn)a+c\equiv b+d\pmod n
  2. ac≡bd(modn)ac\equiv bd\pmod n
  3. ka≡kb(modn),k∈Zka\equiv kb\pmod n,\quad k\in \Z
  4. am≡bm(modn),m∈Z+a^m\equiv b^m\pmod n,\quad m\in \Z^+

证明:(1) 因为 a≡b(modn)a\equiv b\pmod n 且 c≡d(modn)c\equiv d\pmod n ,所以 n∣a−b, n∣c−dn\mid a-b,\ n\mid c-d ,因此 n∣a−b+c−dn\mid a-b+c-d ,即 n∣(a+c)−(b−d)n\mid (a+c)-(b-d) ,所以 a+c≡b+d(modn)a+c\equiv b+d\pmod n 。

利⽤同余的这些性质,我们可以简化数论中的许多问题。

例如,如果今天为星期日,过 nn 天后是星期几?这个问题并不难回答,我们只需对 nn 和7用带余除法,由余数即可确定。但是,有时直接应⽤带余除法求余数是困难的,特别是当被除数较⼤时,如下例:

示例:今天为星期⽇,过 200420042004^{2004} 天后是星期几?

分析:200420042004^{2004} 这个数很⼤,我们很难直接判断7除 200420042004^{2004} 的余数是几。现在,我们想办法把 200420042004^{2004} 变⼩。⼀个⾃然的考虑是7除底数2004的余数是⼏,利用这个余数替换底数2004,然后降次,反复进⾏这个过程,直⾄去掉指数。

解:因为 2004=7×286+22004=7\times 286+2 ,所以 2004≡2(mod7)2004\equiv 2\pmod 7 。由同余的性质有

20042004≡22004(mod7)2004^{2004}\equiv 2^{2004}\pmod 7

而 22004=86682^{2004}=8^{668} 。又 8≡1(mod7)8\equiv 1\pmod 7 ,所以 8668≡12004(mod7)8^{668}\equiv 1^{2004}\pmod 7 。因此

20042004≡1(mod7)2004^{2004}\equiv 1\pmod 7

即 7 除 200420042004^{2004} 的余数为1,所以结果是星期一。

定理:若 ab≡ac(modn)ab\equiv ac\pmod n 且 gcd⁡(a,n)=1\gcd(a,n)=1 则 b≡c(modn)b\equiv c\pmod n

证明:因为 gcd⁡(a,n)=1\gcd(a,n)=1,所以 ∃k,l∈Z\exists k,l\in\Z 使得 ak+nl=1ak+nl=1 ,因此 n∣nl=1−akn\mid nl=1-ak ,即 ak≡1(modn)ak\equiv1\pmod n 。又因为 ab≡ac(modn)ab\equiv ac\pmod n ,所以 kab≡kac(modn)kab\equiv kac\pmod n ,因此 b≡c(modn)b\equiv c\pmod n 。

上述定理可以看作是同余意义下的消去律,前提是 aa 与 nn 必须互素。

剩余类

对正整数 nn ,模 nn 同余给出了整数之间的⼀种关系,这种关系我们称之为同余关系。利⽤同余关系,我们可以对整数集进⾏分类。例如,模2同余可将整数集分为奇数和偶数。

我们把所有与整数 rr 模 nn 同余的整数构成的集合叫做模 nn 的一个剩余类,记作 r mod nr\bmod n 。

由剩余类的定义可知:

  1. r mod n={r+kn:k∈Z}r\bmod n=\{r+kn: k\in\mathbb Z\}

  2. r mod n=s mod n  ⟺  r≡s(modn)r\bmod n=s\bmod n \iff r\equiv s\pmod{n}

我们把模 nn 的同余类全体构成的集合记为

Zn={r mod m:0⩽r<m}\mathbb{Z}_n=\{r\bmod m:0\leqslant r< m\}

费马小定理:设 pp 是素数,aa 是任意整数,若 gcd⁡(p,a)=1\gcd(p,a)=1 则

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

证明:由 gcd⁡(p,a)=1\gcd(p,a)=1 可知 pp 不是 aa 的素因数,又因为 pp 不是1,2,3,…,p−11,2,3,\dots,p-1 的素因数,所以 a,2a,3a,…,(p−1)aa,2a,3a,\dots,(p-1)a 均不能被 pp 整除。又因为 a,2a,3a,…,(p−1)aa,2a,3a,\dots,(p-1)a 模 pp 两两不同余,所以它们分别属于模 pp 的除 00 以外的 p−1p-1 个不同的剩余类中。由同余的性质可知

a⋅2a⋅3a⋯(m−1)a≡1⋅2⋅3⋯(m−1)(modm)\begin{aligned} &a\cdot2a\cdot3a\cdots(m-1)a \\ \equiv &1\cdot2\cdot3\cdots(m-1)\pmod m \end{aligned}

因此

am−1(m−1)!≡(m−1)!(modm)a^{m-1}(m-1)!\equiv(m-1)!\pmod m

又由于 (m−1)!(m-1)! 不含素因数 mm,所以

gcd⁡((m−1)!,m)=1\gcd((m-1)!,m)=1

由同余的消去律可知

am−1≡1(modm)a^{m-1}\equiv1\pmod m

欧拉定理:设 m∈Z+,a∈Zm\in\Z^+,a\in\Z,若 gcd⁡(a,m)=1\gcd(a,m)=1 则

aφ(m)≡1(modm)a^{\varphi(m)}\equiv 1\pmod m

其中 φ(m)\varphi(m) 称为欧拉函数,表示 1,2,⋯ ,m1,2,\cdots,m 中与 mm 互素的正整数的个数。

证明:记 φ(m)=r\varphi(m)=r,并用 a1,a2,…,ara_1,a_2,\dots,a_r 表示 1,2,3,…,m1,2,3,\dots,m 中所有与 mm 互素的整数。因为 gcd⁡(a,m)=1\gcd(a,m)=1,所以 aa1,aa2,…,aaraa_1,aa_2,\dots,aa_r 与 mm 均是互素的。从而它们分属于模 mm 的 rr 个剩余类 a1 mod m, a2 mod m, …, ar mod ma_1\bmod m,\ a_2\bmod m,\ \dots,\ a_r\bmod m。由同余的性质可得:

ara1a2⋯ar≡a1a2⋯ar(modm)a^ra_1a_2\cdots a_r\equiv a_1a_2\cdots a_r\pmod m

又因为 a1,a2,…,ara_1,a_2,\dots,a_r 均与 mm 互素,由同余的消去律可得

aφ(m)≡1(modm)a^{\varphi(m)}\equiv1\pmod m

在欧拉定理中,如果 mm 为素数,此时 φ(m)=m−1\varphi(m)=m-1,那么我们得到了费马小定理。欧拉定理和费马小定理有许多重要的应用,利用它们可以简化许多计算。

同余方程

通常我们把含有未知数的同余式叫做同余方程,一次同余方程的一般形式为

ax≡b(modn)ax\equiv b\pmod n

其中 n∈Z+,a,b∈Zn\in\Z^+,a,b\in\Z 且 a≠0a\neq0 。

若存在 c∈Zc\in\Z 使得同余式 ac≡b(modn)ac\equiv b\pmod n 成立,则把 x≡c(modn)x\equiv c\pmod n 叫做一次同余方程的解。例如, x≡3(mod6)x\equiv 3\pmod 6 是 5x≡3(mod6)5x\equiv 3\pmod 6 的解。

如果 x≡d(modn)x\equiv d\pmod n 也是同余方程的解,且 c≡d(modn)c\equiv d\pmod n,那么我们将这两个解视作一样的。实际上,在这种意义下,一次同余方程的解可理解为模 nn 的一个剩余类,是一个集合,而不是一个整数。因此,要判断一个模 nn 的剩余类是不是同余方程的解,只需选取剩余类中的一个代表元,看它是否使同余式成立即可。

由上面的分析可知,解剩余类环中的方程总可以转化为解某个同余方程。与我们熟悉的解一元一次方程、一元二次方程等过程类似。接下来,我们来讨论一次同余方程解的情况:

情形一:当 gcd⁡(a,n)=1\gcd(a,n)=1 。 我们知道,当 gcd⁡(a,n)=1\gcd(a,n)=1 时,存在整数 k,lk,l,使得 ak+nl=1ak+nl=1,于是 n∣nl=1−akn\mid nl=1-ak, 即 ak≡1(modn)ak\equiv1\pmod n 。因此

ax≡b(modn)  ⟺  ax≡(ak)b(modn)  ⟺  x≡kb(modn)ax\equiv b\pmod n\iff ax\equiv(ak)b\pmod n\iff x\equiv kb\pmod n

因此,同余方程仅有一个解 x≡kb(modn)x\equiv kb\pmod n。

情形二:再讨论 gcd⁡(a,n)=d>1\gcd(a,n)=d>1 的情形。 不妨设 x≡c(modn)x\equiv c\pmod n 为同余方程的一个解,则 ac≡b(modn)ac\equiv b\pmod n,从而 n∣ac−bn\mid ac-b。由于 d∣ad\mid a,d∣nd\mid n,故 d∣acd\mid ac,d∣ac−bd\mid ac-b,从而

d∣ac−(ac−b)=bd\mid ac-(ac-b)=b

这表明,同余方程有解时,必有 d∣bd\mid b。 那么,当 d∣bd\mid b 时,同余方程是否一定有解呢?

记 a=a′da=a'd,n=n′dn=n'd,b=b′db=b'd,则 gcd⁡(a′,n′)=1\gcd(a',n')=1。注意到

ax≡b(modn)  ⟺  n∣ax−b  ⟺  n′d∣(a′x−b′)d  ⟺  n′∣a′x−b′ax\equiv b\pmod n\iff n\mid ax-b\iff n'd\mid(a'x-b')d\iff n'\mid a'x-b'

于是同余方程可化简为

a′x≡b′(modn′)a'x\equiv b'\pmod {n'}

由于 gcd⁡(a′,n′)=1\gcd(a',n')=1,由情形一的讨论知,简化后的同余方程有惟一解 x≡k′b′(modn′)x\equiv k'b'\pmod {n'},此时 x=k′b′+n′lx=k'b'+n'l,其中 ll 为任意整数。

对 l,dl,d 用带余除法:l=dq+rl=dq+r,其中 0⩽r⩽d−10\leqslant r\leqslant d-1 。则

x=k′b′+n′(dq+r)=k′b′+nq+n′rx=k'b'+n'(dq+r)=k'b'+nq+n'r

于是

x≡k′b′+n′r(modn)x\equiv k'b'+n'r\pmod n

其中 r=0,1,⋯ ,d−1r=0,1,\cdots, d-1 。容易检验,它们都是同余方程的解。

综上所述,我们得到下面的结论。

定理:一次同余方程 ax≡b(modn)ax\equiv b\pmod n 有解,当且仅当 gcd⁡(a,n)∣b\gcd(a,n)\mid b。此时,解的个数 d=gcd⁡(a,n)d=\gcd(a,n) 。

示例:解一次同余方程 9x≡6(mod15)9x\equiv 6\pmod{15} 。

解:注意到 gcd⁡(9,15)=3\gcd(9,15)=3 ,且 3∣63\mid 6,故同余方程有3个解。原方程可化简为 3x≡2(mod5)3x\equiv 2\pmod{5}。由于 3×2≡1(mod5)3\times 2\equiv 1\pmod 5 ,故 x≡2×2=4(mod5)x\equiv 2\times 2=4\pmod 5 。所以,原同余方程的三个解分别为

x≡4+5×0=4(mod15)x≡4+5×1=9(mod15)x≡4+5×2=14(mod15)x\equiv 4+5\times 0=4\pmod{15} \\ x\equiv 4+5\times 1=9\pmod{15} \\ x\equiv 4+5\times 2=14\pmod{15}

中国剩余定理

有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?

即解同余方程组

{x≡2(mod3)x≡3(mod5)x≡2(mod7)\begin{cases} x\equiv 2\pmod 3 \\ x\equiv 3\pmod 5 \\ x\equiv 2\pmod 7 \end{cases}

容易检验,若存在正整数 kk 使得每个同余式都成立时,所有模 3×5×7=1053\times5\times 7=105 同余 kk 的整数,也使得上述方程组成立。反过来,若还有整数 ll 使得上述方程组成立,那么

l≡k(mod3), l≡k(mod5), l≡k(mod7)l\equiv k\pmod 3,\ l\equiv k\pmod 5,\ l\equiv k\pmod 7

于是 3∣l−k, 5∣l−k, 7∣l−k3\mid l-k,\ 5\mid l-k,\ 7\mid l-k ,从而 3×5×7∣l−k3\times5\times 7\mid l-k ,即 l≡k(mod105)l\equiv k\pmod{105} 。

通常,我们把 x≡k(mod105)x\equiv k\pmod{105} 叫做同余方程组的解,在这个意义下,同余方程组只有一个解。

「物不知数」问题最早见于《孙子算经》中,并有该问题的具体解法。中国剩余定理 (Chinese Remainder Theorem, CRT) 可求解如下形式的一元线性同余方程组。

中国剩余定理:设 m1,m2,⋯ ,mrm_1,m_2,\cdots,m_r 是两两互素的正整数,解同余方程组

x≡a1(modm1)x≡a2(modm2)⋮x≡ar(modmr)x\equiv a_1\pmod {m_1}\\ x\equiv a_2\pmod {m_2}\\ \vdots \\ x\equiv a_r\pmod {m_r}\\

  1. 计算所有模数的积 nn;

  2. 对于第 ii 个方程:

    • 计算 mi=n/nim_i=n/n_i
    • 计算 mim_i 在模 nin_i 下的逆元 mi−1m_i^{-1}
    • 计算 ci=mimI−1c_i=m_im_I^{-1}
  3. 方程组在模 nn 下的唯一解为

    x=∑i=1raici(modn)x=\sum_{i=1}^r a_ic_i\pmod n

指数与原根

不定方程

公元200多年,古希腊数学家丢番图Diophantus曾讨论了某些不定⽅程,因⽽也有⼈把不定⽅程叫做Diophantus⽅程。

一次不定方程(linear Diophantine equation)是形如

a1x1+a2x2+⋯+anxn=ba_1x_1+a_2x_2+\cdots+a_nx_n=b

的不定方程,其中 aia_i 都是整数.本章的目标是寻找它的全体整数解。

二元一次不定方程

首先考虑二元一次不定方程:

ax+by=c(1)ax+by=c\tag{1}

其中 a,b,c∈Za,b,c\in\Z ,且a,b≠0a,b\neq0。

显然,这类不定方程不一定有整数解。例如,2x+4y=12x+4y=1 没有整数解,因为对任意 x,y∈Zx,y\in\Z,2x+4y2x+4y 恒为偶数,它不可能等于1。

我们感兴趣的是,不定方程 (1) 何时有整数解?有解时是否有无穷多个整数解?这些整数解是否有统一的表达式?当然,还有一个问题就是如何求出所有的整数解。

首先看不定方程 (1) 有解时,整数 a,b,ca,b,c 具有什么特征。 观察不定方程 ax+by=cax+by=c 的形式,自然联想到它与整除、同余之间的联系。 假定不定方程 (1) 有整数解 x=x0, y=y0x=x_0,\ y=y_0。因为 gcd⁡(a,b)∣a, gcd⁡(a,b)∣b\gcd(a,b)\mid a,\ \gcd(a,b)\mid b,所以 gcd⁡(a,b)∣ax0+by0=c\gcd(a,b)\mid ax_0+by_0=c。也就是说,不定方程 (1) 有解时,整数 a,b,ca,b,c 必须满足:

gcd⁡(a,b)∣c\gcd(a,b)\mid c

整数 a,b,ca,b,c 的这种特征能否保证不定方程 (1) 有整数解呢?

下面我们来检验一下。设 d=gcd⁡(a,b)∣cd=\gcd(a,b)\mid c,令 a=a′d, b=b′d, c=c′da=a'd,\ b=b'd,\ c=c'd,则不定方程 (1) 简化为

a′x+b′y=c′(2)a'x+b'y=c'\tag{2}

其中 gcd⁡(a′,b′)=1\gcd(a',b')=1。由最大公约数的性质,存在一对整数 u,vu,v,使得 a′u+b′v=1a'u+b'v=1。于是 a′(uc′)+b′(vc′)=c′a'(uc')+b'(vc')=c',从而有 a(c′u)+b(c′v)=ca(c'u)+b(c'v)=c。那么 x=c′u, y=c′vx=c'u,\ y=c'v 就是不定方程 (1) 的整数解。

综合上述,我们可以得到不定方程 (1) 有整数解的一个判别准则。

定理:不定方程 ax+by=cax+by=c 有整数解,当且仅当 gcd⁡(a,b)∣c\gcd(a,b)\mid c。

从前面的分析可以看出,当不定方程 (1) 有整数解时,它可以化简为 x,yx,y 的系数互素的不定方程 (2) 。基于这个事实,对有整数解的不定方程 (1) ,我们不妨假定 gcd⁡(a,b)=1\gcd(a,b)=1,设 x=x0, y=y0x=x_0,\ y=y_0 为不定方程 (1) 的整数解。容易检验,对任意整数 tt

{x=x0+bty=y0−at(3)\begin{cases}x=x_0+bt \\y=y_0-at\end{cases}\tag{3}

均为不定方程 (1) 的整数解。这意味着不定方程 (1) 有整数解时,必有无穷多个整数解。

不定方程的每个解是否都可以用表达式 (3) 表示呢?

任取不定方程 (1) 的整数解 x=x′, y=y′x=x',\ y=y',则有 ax′+by′=cax'+by'=c。因为 ax0+by0=cax_0+by_0=c,所以

a(x′−x0)=b(y0−y′)a(x'-x_0)=b(y_0-y')

从而 b∣a(x′−x0)b\mid a(x'-x_0)。因为 gcd⁡(a,b)=1\gcd(a,b)=1,所以 b∣x′−x0b\mid x'-x_0。于是存在整数 tt ,使得 x′−x0=btx'-x_0=bt,即 x′=x0+btx'=x_0+bt,代入上式得 y′=y0−aty'=y_0-at。这表明,不定方程 (1) 的每个解都可以表示成 (3) 式的形式。

通常,我们把 (3) 式叫做不定方程 (1) 的整数通解,而把 x=x0, y=y0x=x_0,\ y=y_0 叫做不定方程 (1) 的一个特解。 综上所述,我们得到下面的结论。

定理:设 gcd⁡(a,b)=1\gcd(a,b)=1,则不定方程 ax+by=cax+by=c 的整数通解为

{x=x0+bty=y0−at\begin{cases}x=x_0+bt \\y=y_0-at\end{cases}

其中 tt 为任意整数,x=x0, y=y0x=x_0,\ y=y_0 为不定方程 ax+by=cax+by=c 的一个特解。

从上述结论可以看出,要描述二元一次不定方程的所有整数解,只需知道它的一个特解即可。对某些比较简单的不定方程,如当 a,ba,b 的绝对值较小时,我们可以直接通过观察或试验得到它的一个特解。

示例:求不定方程 5x+3y=105x+3y=10 的整数通解。

解:因为 gcd⁡(5,3)=1\gcd(5,3)=1,而 1∣101\mid10,所以原不定方程有整数解。容易观察,5x+3y=15x+3y=1 有一个特解 x=−1, y=2x=-1,\ y=2。因此,x=−10, y=20x=-10,\ y=20 就是原不定方程的一个特解。由上述结论,原不定方程的整数通解为

{x=−10+3ty=20−5t\begin{cases}x=-10+3t \\y=20-5t \end{cases}

其中 tt 为任意整数。

对某些较复杂的二元一次不定方程 ax+by=cax+by=c,其中 gcd⁡(a,b)=1\gcd(a,b)=1,我们很难直接观察出它的一个特解。这时候,我们可以通过辗转相除法求它的一个特解。其过程如下:

注意到,当 b=1b=1 时,我们容易观察出不定方程 ax+by=cax+by=c 的一个特解 x0=1, y0=c−ax_0=1,\ y_0=c-a。

下面假定 b>1b>1,并且对 a,ba,b 用辗转相除法得

a=bq1+r1,b=r1q2+r2,r2=r3q3+r4,⋯⋯rn−2=rn−1qn+rn (rn=1)\begin{align*} a&=bq_1+r_1,\\ b&=r_1q_2+r_2,\\ r_2&=r_3q_3+r_4,\\ &\cdots\cdots\\ r_{n-2}&=r_{n-1}q_n+r_n\ (r_n=1)\end{align*}

我们规定,k0=0, k1=1k_0=0,\ k_1=1,然后由递推关系式 ki=ki−2−qiki−1 (i=2,⋯ ,n)k_i=k_{i-2}-q_ik_{i-1}\ (i=2,\cdots,n) 依次计算出 k2,⋯ ,knk_2,\cdots,k_n。根据大衍求一术的算法原理知,ri≡aki(modb)r_i\equiv ak_i\pmod b,于是 b∣ri−akib\mid r_i-ak_i。特别地,当 i=ni=n 时,b∣1−aknb\mid1-ak_n。我们选取

{x0=kncy0=c(1−akn)b\begin{cases} x_0=k_nc \\ y_0=\dfrac{c(1-ak_n)}{b} \end{cases}

容易检验,x=x0, y=y0x=x_0,\ y=y_0 就是不定方程 ax+by=cax+by=c 的一个特解。根据前面的过程,我们可以写出下面算法流程图:

示例:求不定方程 13x+74y=213x+74y=2 的一个特解。

解:因为 gcd⁡(13,74)=1\gcd(13,74)=1,我们对 13,7413,74 用辗转相除法,得

13=74×0+13,74=13×5+9,13=9×1+4,9=4×2+1,\begin{align*} 13&=74\times0+13,\\ 74&=13\times5+9,\\ 13&=9\times1+4,\\ 9&=4\times2+1, \end{align*}

因此 q2=5, q3=1, q4=2q_2=5,\ q_3=1,\ q_4=2。再由递推关系式依次计算得

k2=(−5)×1+0=−5,k3=(−1)×(−5)+1=6,k4=(−5)+(−2)×6=−17.\begin{align*} k_2&=(-5)\times1+0=-5,\\ k_3&=(-1)\times(-5)+1=6,\\ k_4&=(-5)+(-2)\times6=-17. \end{align*}

因此

{x=(−17)×2=−34,y=2(1−13×(−17))74=6\begin{cases} x=(-17)\times2=-34,\\ y=\dfrac{2(1-13\times(-17))}{74}=6 \end{cases}

是不定方程 13x+74y=213x+74y=2 的一个特解。

多元一次不定方程

本节以三元一次不定方程为例说明多元一次不定方程的解法。 三元一次不定方程的一般形式为

ax+by+cz=d(1)ax+by+cz=d\tag{1}

其中 a,b,c∈Z+, d∈Za,b,c\in\Z^+,\ d\in\Z 。

仿照讨论二元一次不定方程的方式,首先看不定方程 (1) 有整数解时,a,b,c,da,b,c,d 有什么特征。设 x=x0, y=y0, z=z0x=x_0,\ y=y_0,\ z=z_0 是不定方程 (1) 的整数解。因为 gcd⁡(a,b,c)∣a, gcd⁡(a,b,c)∣b, gcd⁡(a,b,c)∣c\gcd(a,b,c)\mid a,\ \gcd(a,b,c)\mid b,\ \gcd(a,b,c)\mid c,所以 gcd⁡(a,b,c)∣ax0+by0+cz0=d\gcd(a,b,c)\mid ax_0+by_0+cz_0=d。

当 gcd⁡(a,b,c)∣d\gcd(a,b,c)\mid d 时,不定方程 (1) 是否一定有整数解呢?

我们记 gcd⁡(a,b)=m\gcd(a,b)=m,由于 gcd⁡(m,c)=gcd⁡(a,b,c)∣d\gcd(m,c)=\gcd(a,b,c)\mid d,故二元一次不定方程

mt+cz=d(2)mt+cz=d\tag{2}

有整数解,不妨设 t=t0, z=z0t=t_0,\ z=z_0。考虑二元一次不定方程

ax+by=mt0(3)ax+by=mt_0\tag{3}

由于 gcd⁡(a,b)=m∣mt0\gcd(a,b)=m\mid mt_0,所以不定方程 (3) 有整数解 x=x0, y=y0x=x_0,\ y=y_0。注意到 ax0+by0+cz0=mt0+cz0=dax_0+by_0+cz_0=mt_0+cz_0=d,所以 x=x0, y=y0, z=z0x=x_0,\ y=y_0,\ z=z_0 是不定方程 (1) 的一组整数解。

综上所述,我们得到不定方程 (1) 有整数解的一个判断准则。

定理:三元一次不定方程 ax+by+cz=dax+by+cz=d 有整数解的充要条件为 gcd⁡(a,b,c)∣d\gcd(a,b,c)\mid d 。

从前面的分析可以看出,当 gcd⁡(a,b,c)∣d\gcd(a,b,c)\mid d 时,要求不定方程 (1) 的全部整数解,我们可以先求不定方程 (2) 的整数通解,得到 tt 和 zz 的表达式。然后用 tt 的表达式代替不定方程 (3) 中的 t0t_0,求出它的整数通解,得到 xx 和 yy 的表达式。最后,联合 x,yx,y 和 zz 的表达式就给出了不定方程 (1) 的全部整数解。

然而,在实际解题时,我们常常将三元的问题转化为二元问题,即先分别解不定方程 ax+by=mtax+by=mt 与 mt+cz=dmt+cz=d,在解第一个不定方程时,把 tt 视为给定的整数,这样得到两个整数通解的表达式。联立这两个表达式,消去 tt 后便得到 x,yx,y 和 zz 的表达式即为所求。

看一个具体的例子。

示例:求不定方程 5x−8y+3z=25x-8y+3z=2 的全部整数解。

解:因为 gcd⁡(5,−8)=1, gcd⁡(5,−8,3)=gcd⁡(1,3)=1∣2\gcd(5,-8)=1,\ \gcd(5,-8,3)=\gcd(1,3)=1\mid2,所以不定方程有整数解。分别解不定方程 5x−8y=t5x-8y=t 与 t+3z=2t+3z=2,得到它们的整数通解为

{x=5t+8k,y=3t+5k{t=−1−3l,z=1+l\begin{cases} x=5t+8k,\\y=3t+5k \end{cases}\quad \begin{cases}t=-1-3l, \\z=1+l \end{cases}

其中 k,lk,l 为任意整数。联立上面的两个通解表示式,消去 tt,便得到原不定方程的全部整数解

{x=−5+8k−15ly=−3+5k−9lz=1+l\begin{cases} x=-5+8k-15l\\ y=-3+5k-9l\\ z=1+l \end{cases}

其中 k,lk,l 为任意整数。

密码学应用

参考文献:高中数学A版选修4-6 初等数论初步