林老师 · 客观题题库 · 第 24 章 中国剩余定理 · 知识细节练习

第 24 章 中国剩余定理 · 知识细节练习

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

判 分 报 告

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

同余方程组基础

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

同余方程组的一般形式是?

(1 分)
第 2 题 A2 未作答

中国剩余定理(CRT)处理的是哪种方程组?

(1 分)
第 3 题 A3 未作答

模数两两互质时,同余方程组的解在模多少下唯一?

(1 分)
第 4 题 A4 未作答

中国剩余定理的结论是?

(1 分)
第 5 题 A5 未作答

《孙子算经》"物不知数"问题:一个数除以 3 余 2、除以 5 余 3、除以 7 余 2,这个数最小是?

(1 分)
第 6 题 A6 未作答

判断题:CRT 解的唯一性是"模 MM 意义下"的——所有解构成模 MM 的一个同余类(解相差 MM 的倍数)。

(1 分)

CRT 构造

7 QUESTIONS · 2 POINTS EACH
第 7 题 B1 未作答

CRT 构造解的三步骤是?

(1 分)
第 8 题 B2 未作答

模数 3,5,73, 5, 7(两两互质),CRT 的总模数 MM 是?

(1 分)
第 9 题 B3 未作答

M=105M = 105(模数 3、5、7),对应的 M1=M/3M_1 = M/3 是?

(1 分)
第 10 题 B4 未作答

物不知数问题中,M1=35M_1 = 35t1=351(mod3)t_1 = 35^{-1} \pmod 3 等于?

(1 分)
第 11 题 B5 未作答

CRT 的解的公式是?

(1 分)
第 12 题 B6 未作答

判断题:CRT 构造有效的原因——对第 jj 个模数,MitiM_i t_iiji \ne j 时被 mjm_j 整除(MiM_i 含因子 mjm_j)、在 i=ji = j1\equiv 1——代入第 jj 个方程只剩 aja_j 项。

(1 分)
第 13 题 B7 未作答

物不知数(模 3、5、7)的 CRT 构造:x=2×35×2+3×21×1+2×15×1x = 2 \times 35 \times 2 + 3 \times 21 \times 1 + 2 \times 15 \times 1,代入模 105 得?

(1 分)

互质 CRT 计算

7 QUESTIONS · 2 POINTS EACH
第 14 题 C1 未作答

{x1(mod3)x2(mod5)\begin{cases} x \equiv 1 \pmod 3 \\ x \equiv 2 \pmod 5 \end{cases},最小正整数解是?

(1 分)
第 15 题 C2 未作答

{x3(mod4)x2(mod5)x1(mod7)\begin{cases} x \equiv 3 \pmod 4 \\ x \equiv 2 \pmod 5 \\ x \equiv 1 \pmod 7 \end{cases},最小正整数解是?

(1 分)
第 16 题 C3 未作答

CRT 求出解 x233(mod105)x \equiv 233 \pmod{105},最小正整数解是?

(1 分)
第 17 题 C4 未作答

判断题:CRT 的全部解是 x=x0+kMx = x_0 + kMkk 整数)——一个解加减 MM 仍满足所有方程。

(1 分)
第 18 题 C5 未作答

{x1(mod3)x2(mod4)\begin{cases} x \equiv 1 \pmod 3 \\ x \equiv 2 \pmod 4 \end{cases}——注意 3 与 4 互质,最小正整数解是?

(1 分)
第 19 题 C6 未作答

判断题:CRT 构造中的逆元 ti=Mi1(modmi)t_i = M_i^{-1} \pmod{m_i} 常用 exgcd 求解(MiM_imim_i 互质保证有解)。

(1 分)
第 20 题 C7 未作答

判断题:模数两两互质时,同余方程组恒有解——存在性是 CRT 保证的,不需要额外条件。

(1 分)

非互质情形

7 QUESTIONS · 2 POINTS EACH
第 21 题 D1 未作答

模数不互质时,两个方程 xa(modm)x \equiv a \pmod mxb(modn)x \equiv b \pmod n 有解的条件是?

(1 分)
第 22 题 D2 未作答

判断题:非互质两方程用"代入合并":x=a+kmx = a + km 代入第二式解 kk——得到模 lcm 的新方程。

(1 分)
第 23 题 D3 未作答

{x1(mod2)x0(mod2)\begin{cases} x \equiv 1 \pmod 2 \\ x \equiv 0 \pmod 2 \end{cases} 的解是?

(1 分)
第 24 题 D4 未作答

判断题:非互质情形下,方程组(若有解)的解在模 lcm(m,n)\mathrm{lcm}(m, n) 下唯一——比乘积更紧。

(1 分)
第 25 题 D5 未作答

{x2(mod4)x4(mod6)\begin{cases} x \equiv 2 \pmod 4 \\ x \equiv 4 \pmod 6 \end{cases},最小正整数解是?

(1 分)
第 26 题 D6 未作答

判断题:互质情形公式法一步到位;非互质情形需逐对合并并检查可解条件——后者是前者的推广。

(1 分)
第 27 题 D7 未作答

处理任意(含非互质)同余方程组的通用策略是?

(1 分)

CRT 应用

6 QUESTIONS · 2 POINTS EACH
第 28 题 E1 未作答

CRT 的经典应用"大数运算分解"是?

(1 分)
第 29 题 E2 未作答

判断题:模数 MM 非素数时,可分解 M=pieiM = \prod p_i^{e_i},各算 C(n,k)modpieiC(n,k) \bmod p_i^{e_i} 再 CRT 合并——这是组合数取模的一般方法。

(1 分)
第 30 题 E3 未作答

判断题:abmodMa^b \bmod MMM 很大)可分解模数分别快速幂、再 CRT 合并——各小模数计算更快更安全。

(1 分)
第 31 题 E4 未作答

判断题:欧拉函数等数论函数可用 CRT 分解计算——互质分解后逐块算再合并。

(1 分)
第 32 题 E5 未作答

判断题:CRT 与拉格朗日插值同构——"在若干互质模下分别给定取值,唯一确定模乘积的解"恰是"若干点定多项式"的数论版。

(1 分)
第 33 题 E6 未作答

CRT 的典型应用场景是?

(1 分)

模数分解与逆元

6 QUESTIONS · 2 POINTS EACH
第 34 题 F1 未作答

判断题:模分解 M=m1m2M = m_1 m_2gcd(m1,m2)=1\gcd(m_1, m_2) = 1)后,"xmodMx \bmod M"可由"xmodm1x \bmod m_1"与"xmodm2x \bmod m_2"唯一确定。

(1 分)
第 35 题 F2 未作答

判断题:分解模数的流程 = 各小模数下分别计算 → CRT 合并——分而治之。

(1 分)
第 36 题 F3 未作答

判断题:CRT 公式中 tit_i(逆元)的作用是"抵消其他分量"——Miti1(modmi)M_i t_i \equiv 1 \pmod{m_i} 使第 ii 项在模 mim_i 下正好留下 aia_i

(1 分)
第 37 题 F4 未作答

判断题:MiM_imim_i 互质(互质模数保证),故 ti=Mi1(modmi)t_i = M_i^{-1} \pmod{m_i} 恒可用 exgcd 求出。

(1 分)
第 38 题 F5 未作答

CRT 求解 kk 个方程的复杂度主要由什么决定?

(1 分)
第 39 题 F6 未作答

判断题:分解模数的优势 = 小模数运算快、防溢出、可并行——大数难题化整为零。

(1 分)

综合与扩展

6 QUESTIONS · 2 POINTS EACH
第 40 题 G1 未作答

判断题:CRT 可视为环同构 Z/MZ/m1××Z/mk\mathbb{Z}/M \cong \mathbb{Z}/m_1 \times \cdots \times \mathbb{Z}/m_k(互质时)——数论版的"分解定理"。

(1 分)
第 41 题 G2 未作答

判断题:CRT 的逆过程 = 已知 xmodMx \bmod M,求它模各 mim_i 的余数——直接取模即可(平凡方向)。

(1 分)
第 42 题 G3 未作答

判断题:RSA 解密用 CRT 加速:模 n=pqn = pq 的解密拆成模 pp、模 qq 两部分各算再合并——提速约 4 倍。

(1 分)
第 43 题 G4 未作答

判断题:CRT 思想可推广到多项式——模互质多项式的同余方程组有类似的合并公式(拉格朗日插值是特例)。

(1 分)
第 44 题 G5 未作答

判断题:中国剩余定理最早见于《孙子算经》(物不知数),宋代秦九韶给出系统解法(大衍求一术)——早于西方数百年。

(1 分)
第 45 题 G6 未作答

判断题:CRT 的核心思想 = "整体难题拆成互质分量分别解,再唯一合并"——分治思想在数论中的体现。

(1 分)

易错综合

5 QUESTIONS · 2 POINTS EACH
第 46 题 H1 未作答

判断题:模数不互质时直接套互质 CRT 公式会得到错误结果——必须先逐对合并或先判可解条件。

(1 分)
第 47 题 H2 未作答

判断题:CRT 公式算出 233233 后忘了模 105105 直接报 233233——答案不唯一(233 与 23 同余),应取最小正整数解或明确模 MM

(1 分)
第 48 题 H3 未作答

判断题:t1=M11(modm1)t_1 = M_1^{-1} \pmod{m_1} 是"模 m1m_1"的逆元——若误算成"模 MM"的逆元,公式就错了。

(1 分)
第 49 题 H4 未作答

判断题:非互质合并时若中间同余式无解(如 2k1(mod4)2k \equiv 1 \pmod 4),整个方程组无解——漏判会继续算下去得到错误解。

(1 分)
第 50 题 H5 未作答

判断题:以下结论全部正确——"互质 CRT 恒有解且模乘积唯一;非互质需判 ab(modgcd)a \equiv b \pmod{\gcd} 并逐对合并;解取模 MM(或 lcm)取最小正代表;逆元按各 mim_i 求"。

(1 分)

两方程 CRT 代码

6 QUESTIONS · 2 POINTS EACH
第 51 题 I1 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 解 x ≡ 1 (mod 3), x ≡ 2 (mod 5):CRT 构造
05    int M = 3 * 5;
06    int M1 = M / 3, M2 = M / 5;         // M1 = 5, M2 = 3
07    int t1 = 2;                          // 5^(-1) mod 3 = 2
08    int t2 = 2;                          // 3^(-1) mod 5 = 2
09    int x = (1 * M1 * t1 + 2 * M2 * t2) % M;
10    cout << x;
11    return 0;
12}

单选题:程序输出是?

(1 分)
第 52 题 I2 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int exgcd(int a, int b, int &x, int &y) {
04    if (b == 0) { x = 1; y = 0; return a; }
05    int d = exgcd(b, a % b, y, x);
06    y -= a / b * x;
07    return d;
08}
09int main() {
10    int x, y;
11    exgcd(5, 3, x, y);              // 求 5 模 3 的逆元
12    cout << ((x % 3) + 3) % 3;
13    return 0;
14}

单选题:程序输出是?

(1 分)
第 53 题 I3 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 1 (mod 3), x ≡ 2 (mod 5)
05    int M = 15;
06    int x = (1 * 5 * 2 + 2 * 3 * 2) % M;   // 10 + 12 = 22 ≡ 7
07    cout << x;
08    return 0;
09}

单选题:程序输出是?

(1 分)
第 54 题 I4 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int x = 7;
05    cout << (x % 3 == 1 && x % 5 == 2 ? "YES" : "NO");
06    return 0;
07}

单选题:程序输出是?(验证 7 是否满足 x≡1(mod 3)、x≡2(mod 5))

(1 分)
第 55 题 I5 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 1 (mod 3), x ≡ 2 (mod 5),M = 15
05    int M1 = 5, M2 = 3;
06    int t1 = 2, t2 = 2;
07    int x = (1 * M1 * t1 + 2 * M2 * t2) % ______;   // 总模数
08    cout << x;
09    return 0;
10}

单选题:横线处应填入?(使输出为 7

(1 分)
第 56 题 I6 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 解 x ≡ 7 (mod 15) 的全部解:7 + 15k
05    int x0 = 7, M = 15;
06    cout << x0 + M << " " << x0 - M;   // 相邻两个解
07    return 0;
08}

单选题:程序输出是?

(1 分)

三方程 CRT 代码

6 QUESTIONS · 2 POINTS EACH
第 57 题 J1 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 物不知数:x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7)
05    int M = 105;
06    int x = (2 * 35 * 2 + 3 * 21 * 1 + 2 * 15 * 1) % M;   // 140 + 63 + 30 = 233 ≡ 23
07    cout << x;
08    return 0;
09}

单选题:程序输出是?

(1 分)
第 58 题 J2 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 3 (mod 4), x ≡ 2 (mod 5), x ≡ 1 (mod 7)
05    int M = 140;
06    // M1=35, t1=3;M2=28, t2=2;M3=20, t3=6
07    int x = (3 * 35 * 3 + 2 * 28 * 2 + 1 * 20 * 6) % M;   // 315 + 112 + 120 = 547 ≡ 127
08    cout << x;
09    return 0;
10}

单选题:程序输出是?

(1 分)
第 59 题 J3 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7),M = 105
05    int M1 = 35, M2 = 21, M3 = 15;
06    int t1 = 2, t2 = 1, t3 = 1;
07    int x = (2 * M1 * t1 + 3 * M2 * t2 + 2 * M3 * t3) % ______;
08    cout << x;
09    return 0;
10}

单选题:横线处应填入?(使输出为 23

(1 分)
第 60 题 J4 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int x = 23;
05    cout << (x % 3 == 2 && x % 5 == 3 && x % 7 == 2 ? "YES" : "NO");
06    return 0;
07}

单选题:程序输出是?

(1 分)
第 61 题 J5 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int M = 105;
05    int x = 23;
06    int cnt = 0;
07    for (int i = 0; i < 1000; i++)
08        if (i % 105 == x) cnt++;     // 0~999 中模 105 余 23 的数
09    cout << cnt;
10    return 0;
11}

单选题:程序输出是?(0~999 中共 1000 个数,模 105 余 23 的个数)

(1 分)
第 62 题 J6 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 1 (mod 2), x ≡ 2 (mod 3), x ≡ 3 (mod 5),M = 30
05    // M1=15, t1=1;M2=10, t2=1;M3=6, t3=1
06    int x = (1 * 15 * 1 + 2 * 10 * 1 + 3 * 6 * 1) % 30;   // 15 + 20 + 18 = 53 ≡ 23
07    cout << x;
08    return 0;
09}

单选题:程序输出是?

(1 分)
拾壹

非互质 CRT 代码

7 QUESTIONS · 2 POINTS EACH
第 63 题 K1 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 2 (mod 4), x ≡ 4 (mod 6):代入合并
05    // x = 2 + 4k ≡ 4 (mod 6) → 4k ≡ 2 (mod 6) → 2k ≡ 1 (mod 3) → k ≡ 2 (mod 3)
06    int x = 2 + 4 * 2;        // 取 k = 2
07    cout << x;
08    return 0;
09}

单选题:程序输出是?(最小正整数解)

(1 分)
第 64 题 K2 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int a1 = 1, m1 = 2, a2 = 0, m2 = 2;
05    // 判定:a1 与 a2 模 gcd(2,2)=2 是否同余?
06    int g = 2;
07    cout << (a1 % g == a2 % g ? "SOLVABLE" : "NO-SOLUTION");
08    return 0;
09}

单选题:程序输出是?

(1 分)
第 65 题 K3 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 1 (mod 4), x ≡ 3 (mod 6):
05    // x = 1 + 4k ≡ 3 (mod 6) → 4k ≡ 2 (mod 6) → 2k ≡ 1 (mod 3) → k ≡ 2 (mod 3)
06    int x = 1 + 4 * 2;
07    cout << x;
08    return 0;
09}

单选题:程序输出是?

(1 分)
第 66 题 K4 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int m = 4, n = 6;
05    cout << m * n / __gcd(m, n);    // lcm(4, 6)
06    return 0;
07}

单选题:程序输出是?(非互质合并后解的模)

(1 分)
第 67 题 K5 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 1 (mod 2), x ≡ 2 (mod 4):
05    // x = 1 + 2k ≡ 2 (mod 4) → 2k ≡ 1 (mod 4)——2k 是偶数,不可能 ≡ 1
06    bool ok = false;
07    for (int k = 0; k < 2; k++)
08        if (2 * k % 4 == 1) ok = true;
09    cout << (ok ? "SOLVABLE" : "NO-SOLUTION");
10    return 0;
11}

单选题:程序输出是?

(1 分)
第 68 题 K6 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ a (mod m), x ≡ b (mod n):合并条件
05    int a = 2, m = 4, b = 4, n = 6;
06    int g = __gcd(m, n);
07    cout << (______ ? "SOLVABLE" : "NO-SOLUTION");   // 可解条件
08    return 0;
09}

单选题:横线处应填入?(使输出为 SOLVABLE——2 ≡ 4 (mod 2))

(1 分)
第 69 题 K7 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 逐对合并:x ≡ 2 (mod 4) → 与 x ≡ 4 (mod 6) 合并 → x ≡ 10 (mod 12)
05    // → 与 x ≡ 1 (mod 5) 合并:x = 10 + 12k ≡ 1 (mod 5)
06    // → 12k ≡ -9 ≡ 1 (mod 5) → 2k ≡ 1 (mod 5) → k ≡ 3 (mod 5)
07    int x = 10 + 12 * 3;
08    cout << x;
09    return 0;
10}

单选题:程序输出是?(x ≡ 2 (mod 4)、x ≡ 4 (mod 6)、x ≡ 1 (mod 5) 的最小正整数解)

(1 分)
拾贰

CRT 应用代码

6 QUESTIONS · 2 POINTS EACH
第 70 题 L1 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 求 100 mod 15:分解 15 = 3 × 5
05    int r3 = 100 % 3, r5 = 100 % 5;
06    // CRT 合并:x ≡ 1 (mod 3), x ≡ 0 (mod 5) → x = 10
07    int x = (1 * 5 * 2 + 0 * 3 * 2) % 15;
08    cout << x;
09    return 0;
10}

单选题:程序输出是?(100 mod 15 = 10)

(1 分)
第 71 题 L2 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // C(5,2) = 10;求 C(5,2) mod 6:分解 6 = 2 × 3
05    // mod 2 = 0,mod 3 = 1;CRT 合并 → x ≡ 4 (mod 6)
06    int r2 = 10 % 2, r3 = 10 % 3;
07    int x = (0 * 3 * 1 + 1 * 2 * 2) % 6;   // M1=3,t1=1;M2=2,t2=2
08    cout << x;
09    return 0;
10}

单选题:程序输出是?(10 mod 6 = 4)

(1 分)
第 72 题 L3 未作答

01#include <bits/stdc++.h>
02using namespace std;
03long long qpow(long long a, long long n, long long p) {
04    long long r = 1;
05    a %= p;
06    while (n) {
07        if (n & 1) r = r * a % p;
08        a = a * a % p;
09        n >>= 1;
10    }
11    return r;
12}
13int main() {
14    // 2^10 mod 15:分解 15 = 3 × 5
15    long long r3 = qpow(2, 10, 3), r5 = qpow(2, 10, 5);
16    cout << r3 << " " << r5;
17    return 0;
18}

单选题:程序输出是?(210=10242^{10} = 1024:mod 3 = 1、mod 5 = 4)

(1 分)
第 73 题 L4 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // φ(15) = φ(3) × φ(5)(3 与 5 互质,积性)
05    int c3 = 0, c5 = 0;
06    for (int i = 1; i <= 3; i++) if (__gcd(i, 3) == 1) c3++;
07    for (int i = 1; i <= 5; i++) if (__gcd(i, 5) == 1) c5++;
08    cout << c3 * c5;
09    return 0;
10}

单选题:程序输出是?

(1 分)
第 74 题 L5 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 2 (mod 3), x ≡ 3 (mod 5):CRT 合并
05    int M1 = 5, M2 = 3;
06    int t1 = 2, t2 = 2;
07    int x = (______) % 15;      // a1·M1·t1 + a2·M2·t2
08    cout << x;
09    return 0;
10}

单选题:横线处应填入?(使输出为 8——2·5·2 + 3·3·2 = 20 + 18 = 38 ≡ 8)

(1 分)
第 75 题 L6 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 求 2026 mod 77:分解 77 = 7 × 11
05    int r7 = 2026 % 7, r11 = 2026 % 11;
06    // 2026 = 7×289 + 3 → r7 = 3;2026 = 11×184 + 2 → r11 = 2
07    // CRT:x ≡ 3 (mod 7), x ≡ 2 (mod 11),M = 77
08    // M1 = 11, t1 = 11^(-1) mod 7 = 2;M2 = 7, t2 = 7^(-1) mod 11 = 8
09    int x = (3 * 11 * 2 + 2 * 7 * 8) % 77;   // 66 + 112 = 178 ≡ 24
10    cout << x;
11    return 0;
12}

单选题:程序输出是?(2026 mod 77 = 24)

(1 分)
拾叁

逆元与 exgcd 回顾代码

6 QUESTIONS · 2 POINTS EACH
第 76 题 M1 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int exgcd(int a, int b, int &x, int &y) {
04    if (b == 0) { x = 1; y = 0; return a; }
05    int d = exgcd(b, a % b, y, x);
06    y -= a / b * x;
07    return d;
08}
09int main() {
10    int x, y;
11    exgcd(11, 7, x, y);             // 求 11 模 7 的逆元
12    cout << ((x % 7) + 7) % 7;
13    return 0;
14}

单选题:程序输出是?(11 ≡ 4,4 的逆元是 2——4×2=814 \times 2 = 8 \equiv 1

(1 分)
第 77 题 M2 未作答

01#include <bits/stdc++.h>
02using namespace std;
03long long qpow(long long a, long long n, long long p) {
04    long long r = 1;
05    a %= p;
06    while (n) {
07        if (n & 1) r = r * a % p;
08        a = a * a % p;
09        n >>= 1;
10    }
11    return r;
12}
13int main() {
14    cout << qpow(7, 9, 11);    // 7 模 11 的逆元 = 7^(11-2) = 7^9
15    return 0;
16}

单选题:程序输出是?(7 × 8 = 56 ≡ 1 (mod 11),故逆元为 8)

(1 分)
第 78 题 M3 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // CRT 中 t1 = M1^(-1) mod m1:35^(-1) mod 3
05    // 35 ≡ 2 (mod 3),2 的逆元是 2
06    cout << 2;
07    return 0;
08}

单选题:程序输出是?

(1 分)
第 79 题 M4 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int M = 105;
05    int m[3] = {3, 5, 7};
06    for (int i = 0; i < 3; i++) cout << M / m[i] << " ";   // M_i = M / m_i
07    return 0;
08}

单选题:程序输出是?

(1 分)
第 80 题 M5 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // t_i = M_i^(-1) mod m_i
05    // t1: 35 ≡ 2 (mod 3) → 2^(-1) = 2
06    // t2: 21 ≡ 1 (mod 5) → 1^(-1) = 1
07    // t3: 15 ≡ 1 (mod 7) → 1^(-1) = 1
08    cout << 2 << " " << 1 << " " << 1;
09    return 0;
10}

单选题:程序输出是?

(1 分)
第 81 题 M6 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // CRT 全流程:x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7)
05    int M = 105;
06    int x = 0;
07    x += 2 * 35 * 2;      // a1·M1·t1
08    x += 3 * 21 * 1;      // a2·M2·t2
09    x += 2 * 15 * 1;      // a3·M3·t3
10    x %= M;
11    cout << x;
12    return 0;
13}

单选题:程序输出是?

(1 分)
拾肆

综合代码

6 QUESTIONS · 2 POINTS EACH
第 82 题 N1 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 1 (mod 3), x ≡ 2 (mod 5), x ≡ 3 (mod 7)
05    // M = 105, M1 = 35, t1 = 2;M2 = 21, t2 = 1;M3 = 15, t3 = 1
06    int x = (1 * 35 * 2 + 2 * 21 * 1 + 3 * 15 * 1) % 105;   // 70 + 42 + 45 = 157 ≡ 52
07    cout << x;
08    return 0;
09}

单选题:程序输出是?

(1 分)
第 83 题 N2 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int x = 52;
05    cout << (x % 3 == 1 && x % 5 == 2 && x % 7 == 3 ? "YES" : "NO");
06    return 0;
07}

单选题:程序输出是?

(1 分)
第 84 题 N3 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 157 (mod 105) → 最小正整数解
05    int x = 157 % 105;
06    cout << x;
07    return 0;
08}

单选题:程序输出是?

(1 分)
第 85 题 N4 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int x0 = 23, M = 105;
05    // 检查 23、128、233 是否都满足物不知数三条件
06    int ok = 0;
07    for (int k = 0; k < 3; k++) {
08        int x = x0 + k * M;
09        if (x % 3 == 2 && x % 5 == 3 && x % 7 == 2) ok++;
10    }
11    cout << ok;
12    return 0;
13}

单选题:程序输出是?

(1 分)
第 86 题 N5 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 求 1000 mod 21:分解 21 = 3 × 7
05    int r3 = 1000 % 3, r7 = 1000 % 7;
06    // r3 = 1, r7 = 6;CRT:x ≡ 1 (mod 3), x ≡ 6 (mod 7)
07    // M1 = 7, t1 = 7^(-1) mod 3 = 1;M2 = 3, t2 = 3^(-1) mod 7 = 5
08    int x = (1 * 7 * 1 + 6 * 3 * 5) % 21;   // 7 + 90 = 97 ≡ 13
09    cout << x;
10    return 0;
11}

单选题:程序输出是?(1000 mod 21 = 13)

(1 分)
第 87 题 N6 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 求 12345 mod 12:分解 12 = 3 × 4
05    int r3 = 12345 % 3, r4 = 12345 % 4;
06    // r3 = 0, r4 = 1;CRT:x ≡ 0 (mod 3), x ≡ 1 (mod 4)
07    // M1 = 4, t1 = 4^(-1) mod 3 = 1;M2 = 3, t2 = 3^(-1) mod 4 = 3
08    int x = (0 * 4 * 1 + 1 * 3 * 3) % 12;   // 9
09    cout << x;
10    return 0;
11}

单选题:程序输出是?(12345 mod 12 = 9)

(1 分)
拾伍

完善程序

7 QUESTIONS · 2 POINTS EACH
第 88 题 O1 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7)
05    int m[3] = {3, 5, 7}, a[3] = {2, 3, 2};
06    int M = 105;
07    int x = 0;
08    for (int i = 0; i < 3; i++) {
09        int Mi = M / m[i];
10        int ti = 1;
11        while (______) ti++;     // Mi * ti ≡ 1 (mod m[i]) 的最小 ti
12        x += a[i] * Mi * ti;
13    }
14    x %= M;
15    cout << x;
16    return 0;
17}

单选题:横线处应填入?(使输出为 23

(1 分)
第 89 题 O2 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int M = 105;
05    int m1 = 3, m2 = 5, m3 = 7;
06    int M1 = ______, M2 = ______, M3 = ______;   // M_i = M / m_i
07    cout << M1 << " " << M2 << " " << M3;
08    return 0;
09}

单选题:横线处应填入?(使输出为 35 21 15

(1 分)
第 90 题 O3 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int Mi = 35, mi = 3;
05    int t = 1;
06    while (Mi * t % mi != 1) t++;
07    cout << t;      // 35^(-1) mod 3
08    return 0;
09}

单选题:程序输出是?

(1 分)
第 91 题 O4 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int a[3] = {2, 3, 2};
05    int Mi[3] = {35, 21, 15};
06    int t[3] = {2, 1, 1};
07    int M = 105;
08    int x = 0;
09    for (int i = 0; i < 3; i++) x = (x + ______) % M;   // 累加 a_i·M_i·t_i
10    cout << x;
11    return 0;
12}

单选题:横线处应填入?(使输出为 23

(1 分)
第 92 题 O5 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 2 (mod 4), x ≡ 4 (mod 6):判定可解
05    int a = 2, m = 4, b = 4, n = 6;
06    int g = __gcd(m, n);
07    if (______) {             // 可解条件
08        cout << "SOLVABLE";
09    } else {
10        cout << "NO-SOLUTION";
11    }
12    return 0;
13}

单选题:横线处应填入?(使输出为 SOLVABLE

(1 分)
第 93 题 O6 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int x = 23;
05    cout << (______ ? "YES" : "NO");   // 物不知数三条件验证
06    return 0;
07}

单选题:横线处应填入?(使输出为 YES

(1 分)
第 94 题 O7 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 100 mod 15:分解 15 = 3 × 5
05    int r3 = 100 % 3, r5 = 100 % 5;
06    // CRT 合并(x ≡ r3 (mod 3), x ≡ r5 (mod 5))
07    int x = (r3 * 5 * 2 + r5 * ______) % 15;   // M2 = 3, t2 = 2
08    cout << x;
09    return 0;
10}

单选题:横线处应填入?(使输出为 10

(1 分)
拾陆

代码易错

6 QUESTIONS · 2 POINTS EACH
第 95 题 P1 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int x = 2 * 35 * 2 + 3 * 21 * 1 + 2 * 15 * 1;   // 错误:忘了 % 105
05    cout << x;
06    return 0;
07}

单选题:程序输出是?(未取模的原始和——不是最小解)

(1 分)
第 96 题 P2 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 错误:t1 应按模 3 求(35 ≡ 2 → 逆元 2),误按模 105 求
05    int t1_wrong = 2;   // 此处演示:若误算 35^(-1) mod 105 将无解(gcd(35,105)≠1)
06    int t1 = 2;
07    cout << (t1 * 35 % 3 == 1 ? "t1-OK" : "t1-BAD");
08    return 0;
09}

单选题:程序输出是?(正确的 t1=2 验证:2 × 35 = 70 ≡ 1 (mod 3))

(1 分)
第 97 题 P3 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // 错误:模 4 与 6 不互质,直接套互质 CRT 公式
05    // M = 24, M1 = 6, "t1 = 6^(-1) mod 4"——gcd(6,4)=2,逆元不存在!
06    cout << "invalid";
07    return 0;
08}

判断题:模不互质时互质 CRT 公式中的逆元可能根本不存在(gcd(M_i, m_i) ≠ 1)——直接套公式必然出错,必须先逐对合并。

(1 分)
第 98 题 P4 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    int x = 23, M = 105;
05    // 错误:以为唯一解是 23,忘了 128、233… 都是解
06    // 正解:x = 23 + 105k(k 整数)
07    cout << (128 % M == x ? "MORE-SOLUTIONS" : "ONLY-ONE");
08    return 0;
09}

单选题:程序输出是?(128 与 23 同余模 105——解不止一个)

(1 分)
第 99 题 P5 未作答

01#include <bits/stdc++.h>
02using namespace std;
03int main() {
04    // x ≡ 1 (mod 2), x ≡ 2 (mod 4):漏判可解条件直接合并
05    // x = 1 + 2k ≡ 2 (mod 4) → 2k ≡ 1 (mod 4):无解
06    // 若不检查继续算 k = (1 - ...)/2 会得到错误"解"
07    bool ok = false;
08    for (int k = 0; k < 2; k++)
09        if ((1 + 2 * k) % 4 == 2) ok = true;
10    cout << (ok ? "HAS" : "NONE");
11    return 0;
12}

单选题:程序输出是?

(1 分)
第 100 题 P6 未作答

判断题:以下结论全部正确——"互质 CRT 公式需要逆元存在(互质保证);非互质必须先判 ab(modgcd)a \equiv b \pmod{\gcd};解集是模 MM(或 lcm)的同余类;合并过程中无解则整体无解"。

(1 分)