跳到正文
数论 · 第 20 章

模运算

用余数代替大数来计算:在钟面上绕圈,求巨大幂的末位数字,把几个余数条件合并成一个。

你需要先会
在 YouTube 上打开
20.10%

模运算基础

在本节中,你将能够 把余数写成同余式,并在更方便的时候使用负余数。

现在是 10 点。5 小时后是几点?不是 15 点!钟表会绕回来,所以是 3 点。

钟表只记得余数。模运算也是这样,只不过钟面上可以有任意多个位置。如果两个数落在同一个位置上,就说它们同余。

注意:比整圈差一点的数,可以看成一个小的负数。在有 6 个位置的钟面上,5 在 0 的前一步,所以 5 也是 −1。

动手探索先玩,再学公式

17 = 2 × 6 + 5,所以 17 ≡ 5 (mod 6)

模 m6
a17
012345
直接算大数
17 = 2 × 6 + 5 ≡ 5 (mod 6)
17 = 2 × 6 + 5,所以 17 ≡ 5 (mod 6)

17 = 2 × 6 + 5,所以 17 ≡ 5 (mod 6)

认识概念

定义 20.1.1 · 同余

n≡a(modb)n \equiv a \pmod{b}

表示数 nn 和 aa 除以 bb 所得的余数相同。

注 20.1.2

余数也可以写成负数。例如,一个模 6 余 5 的数,即 5(mod6)5 \pmod{6},也可以说是 −1(mod6)-1 \pmod{6}。当要求这个数的很高次幂时,这样做能让计算简单很多。

过关检测(第 20.1 节)

3 题中答对 2 题即可掌握本节。每题只有一次机会,没有提示。
1

47(mod6)47 \pmod{6} 是多少?(即 47 除以 6 的余数。)

2

一个数是 7(mod8)7 \pmod{8}。在模 8 下,它还与 −8-8 和 00 之间的哪个负数同余?

3

求 0 到 6 之间的 aa,使得 100≡a(mod7)100 \equiv a \pmod{7}。

20.20%

乘法法则

在本节中,你将能够 用余数相乘代替大数相乘,快速求出末位数字和余数。

23 × 47 的个位数字是多少?你可以把整个乘积算出来。也可以只算 3 × 7 = 21。两种方法得到的个位都是 1!

乘法法则告诉我们:相乘之前,可以先把每个数换成它的余数。乘积的末位数字只取决于各个因数的末位数字。

注意:这对最后两位(模 100)或最后三位(模 1000)也同样成立。

动手探索先玩,再学公式

23 × 47 = 1081 ≡ 1 (mod 10); 3 × 7 = 21 ≡ 1 (mod 10)

模 m10
a23
b47
0123456789
直接算大数
23 × 47 = 1,081 ≡ 1 (mod 10)
先换成余数
3 × 7 = 21 ≡ 1 (mod 10)

钟面上的同一个位置!根本不需要算大数。

23 × 47 = 1081 ≡ 1 (mod 10)

23 × 47 = 1081 ≡ 1 (mod 10); 3 × 7 = 21 ≡ 1 (mod 10)

认识概念

定理 20.2.1 · 乘法法则

如果 a≡x(modn)a \equiv x \pmod{n} 且 b≡y(modn)b \equiv y \pmod{n},那么

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

看例题先预测,再揭晓

例 20.1

AMC 8

若 nn 是正偶数,双阶乘记号 n!!n!! 表示从 2 到 nn 的所有偶数的积。例如,8!!=2⋅4⋅6⋅88!! = 2 \cdot 4 \cdot 6 \cdot 8。下面这个和的个位数字是多少?

2!!+4!!+6!!+⋯+2018!!+2020!!+2022!!2!! + 4!! + 6!! + \cdots + 2018!! + 2020!! + 2022!!

48 × 8 = 384 ≡ 4 (mod 10); 8 × 8 = 64 ≡ 4 (mod 10)

0123456789
直接算大数
48 × 8 = 384 ≡ 4 (mod 10)
先换成余数
8 × 8 = 64 ≡ 4 (mod 10)

钟面上的同一个位置!根本不需要算大数。

48 × 8 = 384 ≡ 4 (mod 10)

48 × 8 = 384 ≡ 4 (mod 10); 8 × 8 = 64 ≡ 4 (mod 10)

  1. 1

    看 10!!=2⋅4⋅6⋅8⋅1010!! = 2 \cdot 4 \cdot 6 \cdot 8 \cdot 10。它的个位数字是多少?

    先预测一下:
在 YouTube 上打开

例 20.2

AIME

求 9×99×999×⋯×99⋯9⏟999 个 99 \times 99 \times 999 \times \cdots \times \underbrace{99\cdots9}_{\text{999 个 9}} 除以 1000 的余数。

999 × 9999 = 9989001 ≡ 1 (mod 1000); 999 × 999 = 998001 ≡ 1 (mod 1000)

1 = -9990 (mod 1000)
直接算大数
999 × 9,999 = 9,989,001 ≡ 1 (mod 1000)
先换成余数
999 × 999 = 998,001 ≡ 1 (mod 1000)

钟面上的同一个位置!根本不需要算大数。

999 × 9999 = 9989001 ≡ 1 (mod 1000)

999 × 9999 = 9989001 ≡ 1 (mod 1000); 999 × 999 = 998001 ≡ 1 (mod 1000)

  1. 1

    乘法法则让你可以先求出每一项 (mod1000)\pmod{1000} 的值,再相乘。9≡99 \equiv 9,99≡9999 \equiv 99。那么 999(mod1000)999 \pmod{1000} 是多少?把它写成负数。

    先预测一下:

竞赛角真实竞赛题

习题 20.6.6

AMC 8

两个 99 位数 303,030,303,…,030,303303{,}030{,}303{,}\ldots{,}030{,}303 和 505,050,505,…,050,505505{,}050{,}505{,}\ldots{,}050{,}505 的积的千位数字是 AA,个位数字是 BB。AA 与 BB 的和是多少?

习题 20.6.13(补充题)

AMC 8

若 nn 是正偶数,双阶乘记号 n!!n!! 表示从 2 到 nn 的所有偶数的积。例如,8!!=2⋅4⋅6⋅88!! = 2 \cdot 4 \cdot 6 \cdot 8。下面这个和的个位数字是多少?

2!!+4!!+6!!+⋯+2018!!+2020!!+2022!!2!! + 4!! + 6!! + \cdots + 2018!! + 2020!! + 2022!!

习题 20.6.14(补充题)

MATHCOUNTS

求 12+22+32+⋯+201621^2 + 2^2 + 3^2 + \cdots + 2016^2 除以 17 的余数。

过关检测(第 20.2 节)

3 题中答对 2 题即可掌握本节。每题只有一次机会,没有提示。
1

23×4723 \times 47 的个位数字是多少?

2

101×102×103101 \times 102 \times 103 除以 100 的余数是多少?

3

17×1917 \times 19 除以 9 的余数是多少?

20.30%

乘方法则

在本节中,你将能够 把底数换成一个小的余数,求出巨大幂的余数。

1999 的 2000 次方有 6000 多位。但你仍然可以心算出它除以 5 的余数!

幂就是同一个数一遍又一遍地相乘。所以乘法法则对幂也适用:把底数换成它的余数。余数是 1 或 −1 最好不过了,因为它们的幂非常好算。

动手探索先玩,再学公式

1999^k mod 5按 4, 1 循环(周期 2); 1999^2000 ≡ 1999^2 ≡ 1 (mod 5)

底数1999
模5
01234
  1. 199911999^{1}4
  2. 199921999^{2}1
  3. 199931999^{3}4
  4. 199941999^{4}1
  5. 199951999^{5}4
  6. 199961999^{6}1

模 5 的余数每 2 个幂重复一次:4, 1。

周期 2

1999^k mod 5按 4, 1 循环(周期 2)

认识概念

定理 20.3.1 · 乘方法则

如果 a≡x(modn)a \equiv x \pmod{n},那么

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

看例题先预测,再揭晓

例 20.3

AMC 8

199920001999^{2000} 除以 5,余数是多少?

1999^2000 ≡ 1 (mod 5); 4^2000 ≡ 1 (mod 5)

01234
直接算大数
199920001999^{2000} ≡ 1 (mod 5)
先换成余数
42000^{2000} ≡ 1 (mod 5)

钟面上的同一个位置!根本不需要算大数。

1999^2000 ≡ 1 (mod 5)

1999^2000 ≡ 1 (mod 5); 4^2000 ≡ 1 (mod 5)

  1. 1

    1999(mod5)1999 \pmod{5} 等于多少?

    先预测一下:

例 20.4

求 989^8 除以 100 的余数。

9^k mod 100按 9, 81, 29, 61, 49, 41, 69, 21, 89, 1 循环(周期 10)

  1. 919^{1}9
周期 10

9^k mod 100按 9, 81, 29, 61, 49, 41, 69, 21, 89, 1 循环(周期 10)

  1. 1

    从小的开始。929^2 是多少?

    先预测一下:
在 YouTube 上打开

竞赛角真实竞赛题

习题 20.6.3

AMC 8

720117^{2011} 的十位数字是多少?

过关检测(第 20.3 节)

3 题中答对 2 题即可掌握本节。每题只有一次机会,没有提示。
1

115011^{50} 除以 5 的余数是多少?

2

8258^{25} 除以 9 的余数是多少?

3

109910^{99} 除以 9 的余数是多少?

20.40%

多个同余式

在本节中,你将能够 把两个或更多的余数条件合并成一个。

Sejal 有一些弹珠。每行摆 5 颗,会剩下 1 颗。每行摆 7 颗,又剩下 1 颗。她可能有多少颗弹珠?

每个条件都像一个筛子:它让每隔 3 个(或每隔 5 个)数中的一个通过。把两个筛子叠在一起,留下来的数又是等间隔的。这个间隔就是这些模的最小公倍数。

注意:如果所有余数都相同(或者都比除数小同样多),可以先把它减掉,然后直接用最小公倍数。

动手探索先玩,再学公式

0 到 100 中满足 x ≡ 2 (mod 3) 且 x ≡ 4 (mod 5) 的数:14, 29, 44, 59, 74, 89;合起来就是 x ≡ 14 (mod 15)

余数 12
模 13
余数 24
模 25
14, 29, 44, 59, 74, 89每隔 15 出现一个

0 到 100 中满足 x ≡ 2 (mod 3) 且 x ≡ 4 (mod 5) 的数:14, 29, 44, 59, 74, 89;合起来就是 x ≡ 14 (mod 15)

认识概念

概念 20.4.1 · 合并同余式

通常可以把关于不同模的同余式合并成一个。例如,如果 x≡1(mod5)x \equiv 1 \pmod{5} 且 x≡1(mod7)x \equiv 1 \pmod{7},那么 x≡1(mod35)x \equiv 1 \pmod{35}。

看例题先预测,再揭晓

例 20.5

求小于 100 的、除以 5 余 1 且除以 7 余 1 的最大的数。

0 到 100 中满足 x ≡ 1 (mod 5) 且 x ≡ 1 (mod 7) 的数:1, 36, 71;合起来就是 x ≡ 1 (mod 35)

1, 36, 71每隔 35 出现一个

0 到 100 中满足 x ≡ 1 (mod 5) 且 x ≡ 1 (mod 7) 的数:1, 36, 71;合起来就是 x ≡ 1 (mod 35)

  1. 1

    把条件写成 x≡1(mod5)x \equiv 1 \pmod{5} 和 x≡1(mod7)x \equiv 1 \pmod{7}。那么 x−1(mod5)x - 1 \pmod{5} 和 (mod7)\pmod{7} 分别是多少?

    先预测一下:

例 20.6

求最小的正整数,它除以 6 余 5,除以 5 余 2,除以 7 余 2,除以 11 余 2。

1100 到 1199 中满足 x ≡ 5 (mod 6) 的数:1103, 1109, 1115, 1121, 1127, 1133, 1139, 1145, …;合起来就是 x ≡ 5 (mod 6)

1103, 1109, 1115, 1121, 1127, 1133, 1139, …每隔 6 出现一个

1100 到 1199 中满足 x ≡ 5 (mod 6) 的数:1103, 1109, 1115, 1121, 1127, 1133, 1139, 1145, …;合起来就是 x ≡ 5 (mod 6)

  1. 1

    有三个条件的余数都是 2。如果 xx 除以 5、7、11 都余 2,那么 x−2x - 2 是哪个数的倍数?

    先预测一下:
在 YouTube 上打开

自己做

习题 20.6.4

大于 2、且除以 3、4、5 或 6 都余 2 的最小的数是多少?

习题 20.6.10(补充题)

求大于 1、且除以 2、3、4、5、6 都余 1 的最小的正数。

竞赛角真实竞赛题

习题 20.6.5

AMC 8

NN 是一个两位数。

  • NN 除以 99,余数是 11。
  • NN 除以 1010,余数是 33。

NN 除以 1111 的余数是多少?

习题 20.6.7

AMC 8

有多少个三位正整数,除以 6 余 2,除以 9 余 5,且除以 11 余 7?

习题 20.6.11(补充题)

AMC 8

有多少个正整数可以填入下面句子中的空白处?

“一个正整数比另一个正整数的 2 倍多 _____,并且这两个数的和是 28。”

过关检测(第 20.4 节)

3 题中答对 2 题即可掌握本节。每题只有一次机会,没有提示。
1

求大于 1、且除以 2、3、4、5、6 都余 1 的最小的正数。

2

除以 3 余 2、且除以 5 余 4 的最小正数是多少?

3

从 1 到 100 中,有多少个数除以 4 余 1,并且除以 6 也余 1?

20.50%

尾数周期

在本节中,你将能够 找出循环,求出巨大幂的末位数字。

2 的 1026 次方的个位数字是多少?没人想把 2 自乘 1026 次。幸运的是,个位数字会重复!

每个新的个位数字只取决于它前一个。所以一旦某个个位数字再次出现,整个规律就会重复。先找到周期,再用大指数除以周期,看余数。

注意:如果余数是 0,你会落在循环节的最后一个位置,而不是第一个。

动手探索先玩,再学公式

2^k mod 10按 2, 4, 8, 6 循环(周期 4)

底数2
模10
0123456789
  1. 212^{1}2
  2. 222^{2}4
  3. 232^{3}8
  4. 242^{4}6
周期 4

2^k mod 10按 2, 4, 8, 6 循环(周期 4)

认识概念

概念 20.5.1 · 尾数周期

要求 aba^b 这样的大数的末几位数字,一个可行的策略是找规律:先算出 aba^b 的前几个值,然后发现当 bb 很大时,这个规律会一直循环下去。

看例题先预测,再揭晓

例 20.7

求 210262^{1026} 的个位数字。

2^k mod 10按 2, 4, 8, 6 循环(周期 4); 2^1026 ≡ 2^2 ≡ 4 (mod 10)

0123456789
  1. 212^{1}2
  2. 222^{2}4
  3. 232^{3}8
  4. 242^{4}6
周期 4

2^k mod 10按 2, 4, 8, 6 循环(周期 4)

  1. 1

    10261026 次方太大了,先试试小的。21,22,23,242^1, 2^2, 2^3, 2^4 的个位分别是 2,4,8,62, 4, 8, 6。25=322^5 = 32 的个位数字是多少?

    先预测一下:

例 20.8

求

(151+152+153+⋯+152022)+(341+342+⋯+342021)(15^1 + 15^2 + 15^3 + \cdots + 15^{2022}) + (34^1 + 34^2 + \cdots + 34^{2021})

除以 7 的余数。

15^k mod 7按 1 循环(周期 1)

0123456
  1. 15115^{1}1
  2. 15215^{2}1
  3. 15315^{3}1
  4. 15415^{4}1
  5. 15515^{5}1
  6. 15615^{6}1

模 7 的余数每 1 个幂重复一次:1。

周期 1

15^k mod 7按 1 循环(周期 1)

  1. 1

    15(mod7)15 \pmod{7} 是多少?那么每个 15k(mod7)15^k \pmod{7} 是多少?

    先预测一下:
在 YouTube 上打开

自己做

习题 20.6.2

1919+999919^{19} + 99^{99} 的个位数字是多少?

习题 20.6.8(补充题)

1317+171313^{17} + 17^{13} 的个位数字是多少?

习题 20.6.9(补充题)

求 7109−33367^{109} - 3^{336} 的个位数字。

竞赛角真实竞赛题

习题 20.6.1

AMC 8

13201213^{2012} 的个位数字是多少?

习题 20.6.12(补充题)

AMC 10/12

斐波那契数列 1,1,2,3,5,8,13,21,…1, 1, 2, 3, 5, 8, 13, 21, \ldots 以两个 1 开头,之后的每一项都是它前面两项的和。在斐波那契数列各项的个位上,十个数字中哪一个最后出现?

(A) 0 · (B) 4 · (C) 6 · (D) 7 · (E) 9

习题 20.6.16(补充题)

Omega Learn

在斐波那契数列中,前 100 项里有多少项除以 8 的余数小于 7?

过关检测(第 20.5 节)

3 题中答对 2 题即可掌握本节。每题只有一次机会,没有提示。
1

1317+171313^{17} + 17^{13} 的个位数字是多少?

2

420234^{2023} 的个位数字是多少?

3

31003^{100} 的个位数字是多少?

20.6

练习题

在本节中,你将能够 在竞赛题中综合运用乘法法则、循环和合并同余式。

再来一道难题,来自 AIME!先把平方项配对、化简,最后再模 1000。每道题都有三条提示,卡住了就看看。

想在一页上看到本章所有习题吗?打开习题集。

竞赛角真实竞赛题

习题 20.6.15(补充题)

AIME

设 N=1002+992−982−972+962+⋯+42+32−22−12N = 100^2 + 99^2 - 98^2 - 97^2 + 96^2 + \cdots + 4^2 + 3^2 - 2^2 - 1^2,其中加号和减号每两个一组交替出现。求 NN 除以 1000 的余数。