林老师 · 客观题题库 · 专题 10 数论基础 · 复习强化

专题 10 数论基础 · 复习强化

100 题 · 每题对应一个知识细节 · 全部原创
真题
复刻
试卷编号ORIG-专题10数论基础-复习强化
题目总数106 题 · 100 分
试卷类型客观题
考生须知:
① 本卷共 9 大部分,合计 106 题 · 100 分,全部为客观题;
② 试卷右上角设有 「提交答卷」「重置考试」 按钮,提交后系统自动判分并显示答题正确情况,请确认全部作答后再行提交;
③ 试卷不显示答案,提交后方可查看每题作答与正确答案的对照;
④ 答卷进度会保留在本地缓存中,刷新或再次打开仍可继续作答;
⑤ 本卷仅供学生练习使用;请勿用于其他用途;题面有问题请联系:i64coder@163.com。

判 分 报 告

0 / 100 分
0
答 对 · 得 0
0
答 错 · 失 0
当前筛选下没有题目

整除与模运算

14 QUESTIONS · 2 POINTS EACH
第 1 题 A1 未作答

aba \mid baa 整除 bb)的含义是( )。

(1 分)
第 2 题 A2 未作答

amodba \bmod b 的结果是( )。

(1 分)
第 3 题 A3 未作答

amodba \bmod ba0,b>0a \ge 0, b > 0)的结果范围是( )。

(1 分)
第 4 题 A4 未作答

17=5×3+217 = 5 \times 3 + 2 中,商和余数分别是( )。

(1 分)
第 5 题 A5 未作答

(a+b)modm(a + b) \bmod m 等价于( )。

(1 分)
第 6 题 A6 未作答

C++ 中 7%3-7 \% 3 的结果是( )。

(1 分)
第 7 题 A7 未作答

如果 amodm==0a \bmod m == 0bmodm==0b \bmod m == 0,则 (a+b)modm(a + b) \bmod m 一定是( )。

(1 分)
第 8 题 A8 未作答

7/2\lfloor 7/2 \rfloor 的值是( )。

(1 分)
第 9 题 A9 未作答

7/2\lceil 7/2 \rceil 的值是( )。

(1 分)
第 10 题 A10 未作答

C++ 中 7 / 2(两个 int 相除)的结果等价于( )。

(1 分)
第 11 题 A11 未作答

(xmodm)modm(x \bmod m) \bmod m 等于( )。

(1 分)
第 12 题 A12 未作答

计算 2100mod72^{100} \bmod 7 时不能直接算 21002^{100}(溢出),正确做法是( )。

(1 分)
第 13 题 A13 未作答

nn 个人围圈,当前第 ii 人的下一位是 (i+1)modn(i+1) \bmod n。当 i=n1i = n-1 时,下一位是( )。

(1 分)
第 14 题 A14 未作答

100mod7=?100 \bmod 7 = ?100mod3=?100 \bmod 3 = ? 分别是( )。

(1 分)

素数与合数

14 QUESTIONS · 2 POINTS EACH
第 15 题 B1 未作答

素数(质数)的定义是( )。

(1 分)
第 16 题 B2 未作答

合数的定义是( )。

(1 分)
第 17 题 B3 未作答

11 是( )。

(1 分)
第 18 题 B4 未作答

最小的素数是( )。

(1 分)
第 19 题 B5 未作答

下列数中是素数的是( )。

(1 分)
第 20 题 B6 未作答

判定 nn 是否为素数的试除法是( )。

(1 分)
第 21 题 B7 未作答

素数判定只需试除到 n\sqrt{n},原因是( )。

(1 分)
第 22 题 B8 未作答

单次素数判定(试除到 n\sqrt{n})的时间复杂度是( )。

(1 分)
第 23 题 B9 未作答

100100 以内最大的素数是( )。(2019 年真题)

(1 分)
第 24 题 B10 未作答

关于偶数与素数的关系,正确的是( )。

(1 分)
第 25 题 B11 未作答

素数的个数是( )。

(1 分)
第 26 题 B12 未作答

孪生素数是指( )。

(1 分)
第 27 题 B13 未作答

随着数字增大,素数的分布( )。

(1 分)
第 28 题 B14 未作答

关于素数,错误的是( )。

(1 分)

素数筛法

12 QUESTIONS · 2 POINTS EACH
第 29 题 C1 未作答

素数筛法的核心思想是( )。

(1 分)
第 30 题 C2 未作答

埃氏筛筛 2202 \sim 20 的素数:从 22 开始标记 22 的倍数、再到 33 标记 33 的倍数……最终未被标记的是( )。

(1 分)
第 31 题 C3 未作答

埃氏筛代码的核心双重循环是( )。

(1 分)
第 32 题 C4 未作答

埃氏筛的时间复杂度是( )。

(1 分)
第 33 题 C5 未作答

埃氏筛中 1212 会被标记几次(分别被哪些素数的筛循环标记)( )。

(1 分)
第 34 题 C6 未作答

线性筛(欧拉筛)避免重复标记的关键是( )。

(1 分)
第 35 题 C7 未作答

线性筛代码中 if (i % primes[j] == 0) break; 的作用是( )。

(1 分)
第 36 题 C8 未作答

线性筛的时间复杂度是( )。

(1 分)
第 37 题 C9 未作答

线性筛相对埃氏筛的优势是( )。

(1 分)
第 38 题 C10 未作答

筛法适合的场景是( )。

(1 分)
第 39 题 C11 未作答

用埃氏筛筛出 1301 \sim 30 之间的素数个数是( )。

(1 分)
第 40 题 C12 未作答

关于素数筛法,错误的是( )。

(1 分)

质因数分解

12 QUESTIONS · 2 POINTS EACH
第 41 题 D1 未作答

整数唯一分解定理(算术基本定理)说的是( )。

(1 分)
第 42 题 D2 未作答

7272 的质因数分解是( )。

(1 分)
第 43 题 D3 未作答

用试除法分解 6060:先用 22 除尽得 3030、再除尽得 1515;换 33 除尽得 5555 是素数。分解结果是( )。

(1 分)
第 44 题 D4 未作答

试除法分解 nn 的代码框架中,外层循环变量 ii 应从( )开始。

(1 分)
第 45 题 D5 未作答

试除法分解中,当 i×i>ni \times i > n 时可以停止,原因是( )。

(1 分)
第 46 题 D6 未作答

120=23×3×5120 = 2^3 \times 3 \times 5,最大质因子是( )。

(1 分)
第 47 题 D7 未作答

120120 分解为 23×3×52^3 \times 3 \times 5,按从小到大输出所有质因子(含重复)是( )。

(1 分)
第 48 题 D8 未作答

8484 的质因数分解是( )。

(1 分)
第 49 题 D9 未作答

已知 n=pa×qbn = p^a \times q^bp,qp, q 为不同素数),nn 的约数个数是( )。

(1 分)
第 50 题 D10 未作答

360=23×32×51360 = 2^3 \times 3^2 \times 5^1,质因子 22 的指数是( )。

(1 分)
第 51 题 D11 未作答

试除法分解 nn 的时间复杂度是( )。

(1 分)
第 52 题 D12 未作答

关于质因数分解,错误的是( )。

(1 分)

约数

12 QUESTIONS · 2 POINTS EACH
第 53 题 E1 未作答

aabb 的约数(因数),指的是( )。

(1 分)
第 54 题 E2 未作答

1212 的所有约数(正因数)是( )。

(1 分)
第 55 题 E3 未作答

n=p1a1×p2a2×n = p_1^{a_1} \times p_2^{a_2} \times \cdots,则 nn 的约数个数是( )。

(1 分)
第 56 题 E4 未作答

72=23×3272 = 2^3 \times 3^2,约数个数是( )。

(1 分)
第 57 题 E5 未作答

n=pan = p^a(单质因子),约数和是( )。

(1 分)
第 58 题 E6 未作答

8=238 = 2^3,约数和 1+2+4+8=?1 + 2 + 4 + 8 = ?( )。

(1 分)
第 59 题 E7 未作答

完全数是指等于其所有真约数(不含自身)之和的数。6=1+2+36 = 1 + 2 + 3,下一个完全数是( )。

(1 分)
第 60 题 E8 未作答

n>1n > 1 的最小约数和最大约数分别是( )。

(1 分)
第 61 题 E9 未作答

3636 的所有约数时,枚举 ii1136=6\sqrt{36} = 6ii 整除 3636ii36/i36/i 是一对约数。共找到约数( )个。

(1 分)
第 62 题 E10 未作答

枚举约数只需到 n\sqrt{n},原因是( )。

(1 分)
第 63 题 E11 未作答

约数个数为奇数的数是( )。

(1 分)
第 64 题 E12 未作答

关于约数,错误的是( )。

(1 分)

最大公约数与最小公倍数

12 QUESTIONS · 2 POINTS EACH
第 65 题 F1 未作答

gcd(a,b)\gcd(a, b)(最大公约数)的定义是( )。

(1 分)
第 66 题 F2 未作答

辗转相除法(欧几里得算法)的原理是 gcd(a,b)=gcd(b,amodb)\gcd(a, b) = \gcd(b, a \bmod b)。其正确性依据是( )。

(1 分)
第 67 题 F3 未作答

辗转相除法的递归代码是( )。

(1 分)
第 68 题 F4 未作答

gcd 递归中 b == 0 时返回 a,原因是( )。

(1 分)
第 69 题 F5 未作答

gcd 的迭代(非递归)写法是( )。

(1 分)
第 70 题 F6 未作答

gcd(319,377)\gcd(319, 377) 用辗转相除法计算:377=1×319+58377 = 1 \times 319 + 58319=5×58+29319 = 5 \times 58 + 2958=2×29+058 = 2 \times 29 + 0。结果是( )。(2019 年真题)

(1 分)
第 71 题 F7 未作答

lcm(a,b)\text{lcm}(a, b)(最小公倍数)的定义是( )。

(1 分)
第 72 题 F8 未作答

gcd(a,b)×lcm(a,b)=?\gcd(a, b) \times \text{lcm}(a, b) = ?( )。

(1 分)
第 73 题 F9 未作答

lcm(12,18)\text{lcm}(12, 18) 的值是( )。

(1 分)
第 74 题 F10 未作答

gcd(a,a)=?\gcd(a, a) = ?( )。

(1 分)
第 75 题 F11 未作答

更相减损法(中国古代算法)用减法代替取模:gcd(a,b)=gcd(b,ab)\gcd(a, b) = \gcd(b, a - b)a>ba > b)。它比辗转相除法( )。

(1 分)
第 76 题 F12 未作答

两个数的 gcd=6\gcd = 6lcm=36\text{lcm} = 36,这两个数的乘积是( )。

(1 分)

同余与取模应用

12 QUESTIONS · 2 POINTS EACH
第 77 题 G1 未作答

ab(modm)a \equiv b \pmod{m} 的含义是( )。

(1 分)
第 78 题 G2 未作答

ab(modm)a \equiv b \pmod{m}cd(modm)c \equiv d \pmod{m},则 a+c?(modm)a + c \equiv ? \pmod{m}( )。

(1 分)
第 79 题 G3 未作答

ab(modm)a \equiv b \pmod{m}bc(modm)b \equiv c \pmod{m},则( )。

(1 分)
第 80 题 G4 未作答

天干 1010 个、地支 1212 个。公历年份 YY 的天干索引 =Ymod10= Y \bmod 10、地支索引 =Ymod12= Y \bmod 1220242024 年的天干索引和地支索引分别是( )。(2020 年真题考法)

(1 分)
第 81 题 G5 未作答

数列 0,1,2,3,0,1,2,3,0, 1, 2, 3, 0, 1, 2, 3, \ldots(周期为 44)的第 nn 项(从 00 开始)是( )。

(1 分)
第 82 题 G6 未作答

f[n]=(f[n1]+f[n2])%7f[n] = (f[n-1] + f[n-2]) \% 7f[0]=f[1]=1f[0] = f[1] = 1。此数列 mod7\bmod 7 的周期(Pisano 周期)是 1616f[2025]=f[?]f[2025] = f[?]( )。(2025 年真题考法)

(1 分)
第 83 题 G7 未作答

计算 anmodma^n \bmod mnn 很大)时,朴素方法一个一个乘会超时。标准优化是( )。

(1 分)
第 84 题 G8 未作答

编程中递推取模(如 f[i]=(f[i1]+f[i2])%Mf[i] = (f[i-1] + f[i-2]) \% M)的主要目的是( )。

(1 分)
第 85 题 G9 未作答

判断"aabb 除以 mm 余数是否相同",正确的代码是( )。

(1 分)
第 86 题 G10 未作答

哈希函数中用取模(hash(x)=xmodM\text{hash}(x) = x \bmod M)的目的是( )。

(1 分)
第 87 题 G11 未作答

同余方程 x3(mod5)x \equiv 3 \pmod{5} 的解是( )。

(1 分)
第 88 题 G12 未作答

(72)mod5=?(7^2) \bmod 5 = ?( )。

(1 分)

综合与易错

12 QUESTIONS · 2 POINTS EACH
第 89 题 H1 未作答

关于整除与模运算,错误的是( )。

(1 分)
第 90 题 H2 未作答

关于素数判定,错误的是( )。

(1 分)
第 91 题 H3 未作答

关于筛法,错误的是( )。

(1 分)
第 92 题 H4 未作答

下列关于 11 的说法正确的是( )。

(1 分)
第 93 题 H5 未作答

所有偶数中是素数的只有( )。

(1 分)
第 94 题 H6 未作答

C++ 表达式 7 % 3 + 1 的值是( )。

(1 分)
第 95 题 H7 未作答

分解 100100:先用 22 除尽两次得 2525;再用 33 除不尽、44 不是素数跳过、55 除尽两次得 11。分解为 100=22×52100 = 2^2 \times 5^2。如果分解完循环后剩余 n>1n > 1,说明( )。

(1 分)
第 96 题 H8 未作答

C++ 中 13%5-13 \% 5 的结果是( )。

(1 分)
第 97 题 H9 未作答

100100 以内的素数中,十位数字为 99 的是( )。

(1 分)
第 98 题 H10 未作答

gcd(24,36)=12\gcd(24, 36) = 12lcm(24,36)=?\text{lcm}(24, 36) = ?( )。

(1 分)
第 99 题 H11 未作答

N=25×33N = 2^5 \times 3^3NN 的约数个数是( )。

(1 分)
第 100 题 H12 未作答

关于数论基础,错误的是( )。

(1 分)

真 题 演 练

6 QUESTIONS · 真题演练不计分
第 1 题 单选 未作答

100100 以内最大的素数是( )。

(0 分)
CSP-J 2019 · 单选 第9题 | 知识点 质数判定、初等代数
第 2 题 单选 未作答

319319377377 的最大公约数是( )。

(0 分)
CSP-J 2019 · 单选 第10题 | 知识点 最大公约数、质因数分解
第 3 题 单选 未作答

干支纪年法是中国传统的纪年方法,由 1010 个天干和 1212 个地支组合成 6060 个天干地支。由公历年份可以根据以下公式和表格换算出对应的天干地支。

天干=(公历年份)除以 1010 所得余数

地支=(公历年份)除以 1212 所得余数

例如,今年是 20202020 年,20202020 除以 1010 余数为 00,查表为“庚”;20202020 除以 1212,余数为 44,查表为“子”,所以今年是庚子年。

请问 19491949 年的天干地支是( )。

(0 分)
CSP-J 2020 · 单选 第13题 | 知识点 同余与模运算、最小公倍数
第 108~113 题 阅读程序 (共 0 分) 未作答

1  #include <iostream>
2  using namespace std;
3 
4  const int n = 100000;
5  const int N = n + 1;
6 
7  int m;
8  int a[N], b[N], c[N], d[N];
9  int f[N], g[N];
10 
11  void init()
12  {
13      f[1] = g[1] = 1;
14      for (int i = 2; i <= n; i++) {
15          if (!a[i]) {
16              b[m++] = i;
17              c[i] = 1, f[i] = 2;
18              d[i] = 1, g[i] = i + 1;
19          }
20          for (int j = 0; j < m && b[j] * i <= n; j++) {
21              int k = b[j];
22              a[i * k] = 1;
23              if (i % k == 0) {
24                  c[i * k] = c[i] + 1;
25                  f[i * k] = f[i] / c[i * k] * (c[i * k] + 1);
26                  d[i * k] = d[i];
27                  g[i * k] = g[i] * k + d[i];
28                  break;
29              }
30              else {
31                  c[i * k] = 1;
32                  f[i * k] = 2 * f[i];
33                  d[i * k] = g[i];
34                  g[i * k] = g[i] * (k + 1);
35              }
36          }
37      }
38  }
39 
40  int main()
41  {
42      init();
43 
44      int x;
45      cin >> x;
46      cout << f[x] << ' ' << g[x] << endl;
47      return 0;
48  }

假设输入的 x 是不超过 10001000 的自然数,完成下面的判断题和单选题:

108.

若输入不为 1,把第 1313 行删去不会影响输出的结果。( )

109.

2525 行的 f[i] / c[i * k] 可能存在无法整除而向下取整的情况。( )

110.

在执行完 init() 后,f 数组不是单调递增的,但 g 数组是单调递增的。( )

111.

init 函数的时间复杂度为( )。

112.

在执行完 init() 后,f[1]f[2]f[3] …… f[100] 中有( )个等于 22

113.

当输入为 1000 时,输出为( )。

CSP-J 2021 · 阅读程序 第28-33题 | 知识点 欧拉筛、约数个数、约数和
第 10 题 单选 未作答

已知 f[0]=1,f[1]=1f[0] = 1 , f[1] = 1,并且对于所有 n2n \geq 2f[n]=(f[n1]+f[n2])%7f[n] = (f[n-1] + f[n-2]) \% 7。那么 f[2025]f[2025] 的值是多少?( )

(0 分)
CSP-J 2025 · 单选 第8题 | 知识点 埃氏筛、堆排序
第 117~122 题 阅读程序 (共 0 分) 未作答

1  #include <algorithm>
2  #include <cstdio>
3  #include <cstring>
4  inline int gcd(int a, int b) {
5      if (b == 0)
6      return a;
7      return gcd(b, a % b);
8  }
9  int main() {
10      int n;
11      scanf("%d", &n);
12      int ans = 0;
13      for (int i = 1; i <= n; ++i) {
14          for (int j = i + 1; j <= n; ++j) {
15              for (int k = j + 1; k <= n; ++k) {
16                  if (gcd(i, j) == 1 && gcd(j, k) == 1
17                  && gcd(i, k) == 1) {
18                      ++ans;
19                  }
20              }
21          }
22      }
23      printf("%d\n", ans);
24      return 0;
25  }

117.

当输入为 2 时,程序并不会执行第 1616 行的判断语句。( )

118.

将第 1616 行中的 && gcd(i,k)==1 删去不会影响程序运行结果。

119.

当输入的 n3n \ge 3 的时候,程序总是输出一个正整数。

120.

将第 77 行的 gcd(b,a%b) 改为 gcd(a,a%b) 后,程序可能出现的问题是( )

121.

当输入为 8 的时候,输出为

122.

调用 gcd(36,42) 会返回

CSP-J 2025 · 阅读程序 第16-21题 | 知识点 欧拉筛、归并排序