判断题: 能被 整除(记 )当且仅当存在整数 使 ,即 a % b == 0。
考点:整除的概念(A1)。
解析: ⇔ 存在整数 使 ⇔ a % b == 0。✅ 正确
排除法:无(判断题)。混淆点:整除是"模为 0"的特殊情形——% 是检验整除的工具。
关联 · 模运算的定义(D3):余数为 0 即整除。
判断题:素数 = 大于 的自然数中,只有 和它本身两个正因数。
考点:素数的定义(A2)。
解析:素数 = 大于 1、只有 1 和自身两个正因数。✅ 正确
排除法:无(判断题)。混淆点:1 不是素数(A3);2 是最小且唯一的偶素数。
关联 · 合数与 1(A3):分类边界。
判断题:自然数 既不是素数也不是合数。
考点:合数与 1(A3)。
解析:1 只有 1 个正因数,既不是素数也不是合数。✅ 正确
排除法:无(判断题)。混淆点:0 也不是素数/合数,但一般不纳入"大于 1 的自然数"讨论。
关联 · 素数的定义(A2):三分类:素/合/1。
单选题: 的正约数共有几个?
考点:约数与倍数(A4)。
解析:12 的正约数:1, 2, 3, 4, 6, 12,共 6 个。正确答案 A。
排除法:B(5)漏算 1 或 12;C 是数本身;D 无依据。
关联 · 约数个数(I3):逐 i 试除统计。
判断题:任何大于 的自然数都可以唯一地分解成质因数的乘积(不计顺序)——整数唯一分解定理。
考点:质因数分解与唯一分解定理(A5)。
解析:任何大于 1 的整数可唯一分解为质因子乘积(不计顺序)——。✅ 正确
排除法:无(判断题)。混淆点:"不计顺序"即唯一;计顺序则有重排多种写法。
关联 · 质因数分解输出(I5):代码版。
单选题:两个奇数之和是?
考点:奇偶性(A6)。
解析:奇 + 奇 = 偶()。正确答案 A。
排除法:B 错;C/D 与和是否素/合无关(如 3+5=8 合数、1+2 不算两个奇数)。
关联 · 整除的概念(A1):奇偶即模 2 的余数。
单选题: 的值是?
考点:最大公约数的定义(B1)。
解析:(,,取公共低次幂)。正确答案 A。
排除法:B(6)漏了因子 2;C(4)漏了 3;D(72)是 lcm。
关联 · 辗转相除法(B2):求 gcd 的标准算法。
判断题:,当 时返回 ——辗转相除,过程一定终止。
考点:辗转相除法(B2)。
解析:, 返回 ;余数严格递减,必终止。✅ 正确
排除法:无(判断题)。混淆点:终止条件是 而非 。
关联 · 辗转相除迭代版(J1):代码版输出 12。
判断题: 取两数质因数分解中相同质因子的最低次幂(没有的质因子幂次按 计)。
考点:gcd 与质因数分解(B3)。
解析:gcd = 公共质因子的最低次幂乘积——分解后"取小"。✅ 正确
排除法:无(判断题)。混淆点:lcm 是"取大"(B4)——一对镜像。
关联 · 最小公倍数(B4):取大 vs 取小。
单选题: 的值是?
考点:最小公倍数(B4)。
解析:(,,取最高次幂)。正确答案 A。
排除法:B(24)是乘积;C(6)是 gcd;D 无依据。
关联 · 最小公倍数输出(J3):公式 。
判断题: 称 、 互质;两个不同的质数一定互质。
考点:互质(B5)。
解析: 即互质;两个不同质数显然互质(无公共质因子)。✅ 正确
排除法:无(判断题)。混淆点:合数也可能互质(如 8 与 9)。
关联 · gcd 与质因数分解(B3):无公共质因子 ⇔ 互质。
单选题: 的值是?
考点:真题计算 gcd(B6)。
解析:、 → 公共部分 。正确答案 A。
排除法:B(3)漏 7;C(7)漏 3;D(15)是 105 的因子但不是公共的(252 无 5)。
关联 · 辗转相除法(B2):,,。
判断题:()——更相减损的原理,与取模版本质相同。
考点:更相减损的原理(B7)。
解析:——同时减去 不改变公约数;反复减相当于取模。✅ 正确
排除法:无(判断题)。混淆点:减法版大数时慢(多次减),取模版快——本质相同。
关联 · 更相减损版(J4):代码版输出 12。
判断题:判断 是否为素数:用 逐个试除;优化后只需试到 。
考点:试除法判定素数(C1)。
解析:试除 ;优化后只需到 (若 有因子 ,必有因子 )。✅ 正确
排除法:无(判断题)。混淆点:试到 是"充分且必要"的界限。
关联 · 试除范围到平方根(C2):界限的量化。
单选题:判断 是否为素数,试除只需进行到哪个范围?
考点:试除范围到平方根(C2)。
解析:,试除 即 。正确答案 A。
排除法:B/C 是未优化的范围;D 无意义。
关联 · 试除次数统计(I2): 时循环 9 次。
判断题:埃氏筛:从 开始,把每个质数的倍数全部标记为合数;最后没被标记的就是质数。
考点:埃氏筛的思想(C3)。
解析:从 2 开始,把每个质数的倍数全部标记;未标记者即质数。✅ 正确
排除法:无(判断题)。混淆点:标记从 开始(H3),合数被最小质因子标掉。
关联 · 埃氏筛输出质数(K1):代码版。
单选题:用埃氏筛筛出 以内的所有质数,时间复杂度约为?
考点:埃氏筛的复杂度(C4)。
解析: 调和级数 ≈ 。正确答案 A。
排除法:B 是线性筛的复杂度(C5);C 是朴素;D 无依据。
关联 · 线性筛(欧拉筛)(C5): 的进一步优化。
判断题:线性筛(欧拉筛):每个合数只被它的最小质因子筛掉一次,时间复杂度 。
考点:线性筛与欧拉筛(C5)。
解析:每个合数只被最小质因子筛一次 → 。✅ 正确
排除法:无(判断题)。混淆点:i % primes[j] == 0 时 break 是"只筛一次"的关键(K3)。
关联 · 线性筛质数个数(K3):代码版输出 8。
单选题:筛法最适合批量求?
考点:筛法的应用(C6)。
解析:筛法 = 批量打质数表;顺带可求区间质数、约数个数(K5)。正确答案 A。
排除法:B/C/D 不是筛法的用途。
关联 · 区间质数输出(K4):筛法 + 区间过滤。
判断题:单独判断一个大数用试除法;要批量筛出很多数内的质数用筛法。
考点:试除与筛法的选择(C7)。
解析:单个数试除 ;批量筛 。✅ 正确
排除法:无(判断题)。混淆点:边界——筛法内存 ,超大 时要权衡。
关联 · 试除法判定素数(C1):两种场景的选择依据。
单选题:( 向下取整)等于?
考点:向下取整(D1)。
解析:(C++ 整数除法自动向下取整)。正确答案 A。
排除法:B 是向上取整;C 是精确除法;D 无依据。
关联 · 向下取整输出(L1):
7 / 2输出 3。
单选题: 件物品、每袋最多装 件,需要的袋子数 =?
考点:向上取整(D2)。
解析:袋子数 = 。正确答案 A。
排除法:B 是向下取整(会漏装);C/D 无依据。
关联 · 向上取整输出(L2): 件每袋 3 → 4 袋。
判断题:a % b = 除以 的余数(),范围 。
考点:模运算的定义(D3)。
解析:a % b 余数范围 (、)。✅ 正确
排除法:无(判断题)。混淆点:负数被除数时 C++ 余数可为负(D4)。
关联 · 模运算输出(L3):
17 % 5输出 2。
判断题:C++ 中 (-7) % 3 的结果是 (余数符号与被除数一致,不是数学上的 )。
考点:负数取模(D4)。
解析:C++ 中余数符号与被除数一致:(-7) % 3 = -1(数学上 ,余 2)。✅ 正确
排除法:无(判断题)。混淆点:竞赛中避免负数取模,先 (x % m + m) % m 转正。
关联 · 负数取模输出(L4):代码输出 -1。
判断题:——加法可以先拆开取模再合并。
考点:模的加法性质(D5)。
解析:——先拆后合结果一致。✅ 正确
排除法:无(判断题)。混淆点:用途——超大数求和防溢出。
关联 · 模的加法验证(L5):
0 0双输出验证。
判断题:——乘法同理,可用于防溢出。
考点:模的乘法性质(D6)。
解析:——乘法同理。✅ 正确
排除法:无(判断题)。混淆点: 本身可能溢出,先取模再乘。
关联 · 模的乘法防溢出(L6):
9的输出。
判断题:模运算对除法不直接成立: 不能拆成 ——正确做法需要逆元(提高级内容)。
考点:模的除法不成立(D7)。
解析:除法没有类似性质:——需逆元(提高级)。✅ 正确
排除法:无(判断题)。混淆点:P3 的代码实证输出 2 1。
关联 · 模除错误示范(P3):两值不同的证明。
判断题:加法原理:做一件事有 类互斥方案,第 类有 种做法,总做法数 。
考点:加法原理(E1)。
解析:分类互斥 → 方案数相加。✅ 正确
排除法:无(判断题)。混淆点:"类"不互斥会重复计数(E6)。
关联 · 分类必须互斥(E6):适用前提。
判断题:乘法原理:做一件事分 步,第 步有 种做法,总做法数 。
考点:乘法原理(E2)。
解析:分步独立 → 方案数相乘。✅ 正确
排除法:无(判断题)。混淆点:每步的选择数不因前步变化时才可直乘。
关联 · 加法原理(E1):加 vs 乘的分界。
单选题:从 到 有 条路、从 到 有 条路,从 经 到 共有多少种走法?
考点:分类与分步(E3)。
解析:"经 B 到 C"是两步 → 乘法:。正确答案 A。
排除法:B 把分步当分类;C/D 漏步。
关联 · 乘法原理(E2):分步相乘。
单选题:甲到乙可乘汽车 班或高铁 班;乙到丙只能乘船 班。甲经乙到丙共有多少种走法?
考点:加乘混合(E4)。
解析:甲→乙是"二选一"(汽车或高铁)用加法 ,再×乙→丙的 2 → 。正确答案 A。
排除法:B 全加;C 把"或"当"且"相乘;D 无依据。
关联 · 分类与分步(E3):混合题的拆解。
判断题:计数题可以先枚举验证小规模答案,再用加法/乘法原理推广到大规模。
考点:计数与枚举验证(E5)。
解析:小规模枚举对拍、大规模用原理推广——标准验证流程。✅ 正确
排除法:无(判断题)。混淆点:对拍只能找反例不能证明,但足够实战。
关联 · DP 与枚举(第 17 章 F6):同款验证哲学。
判断题:加法原理的"类"必须互斥(互不重叠),否则会重复计数。
考点:分类必须互斥(E6)。
解析:两类有重叠时相加会重复计数——先排除重叠或改用其他方法。✅ 正确
排除法:无(判断题)。混淆点:互斥是加法原理的硬前提。
关联 · 加法原理(E1):前提条件。
单选题:排列数 等于?
考点:排列数公式(F1)。
解析:(从 5 个里选 2 个并排顺序)。正确答案 A。
排除法:B 是 ;C 是 ;D 是 。
关联 · 排列与组合的区别(F5):有顺序用 A。
单选题: 个不同元素的全排列共有几种?
考点:全排列(F2)。
解析:。正确答案 A。
排除法:B 是 ;C 是 ;D 是 。
关联 · 排列数公式(F1):。
单选题:组合数 等于?
考点:组合数公式(F3)。
解析:。正确答案 A。
排除法:B 是 ;C 是 ;D 无依据。
关联 · 组合数的对称性(F4):。
判断题:——"选 个留下"与"选 个留下"一一对应。
考点:组合数的对称性(F4)。
解析:选 个留下 ⇔ 选 个留下,一一对应。✅ 正确
排除法:无(判断题)。混淆点:对称性常用于化简计算(选小的一方)。
关联 · 组合数公式(F3):。
判断题:排列与顺序有关(用 )、组合与顺序无关(用 )——"选班委"用 、"排座位"用 。
考点:排列与组合的区别(F5)。
解析:顺序有关 → A;顺序无关 → C。✅ 正确
排除法:无(判断题)。混淆点:"班委分工"(有职位)是排列,"只选人"是组合。
关联 · 排列数公式(F1):区分依据。
判断题:——杨辉三角的递推本质。
考点:杨辉恒等式(F6)。
解析:——最后元素"不选/选"两类。✅ 正确
排除法:无(判断题)。混淆点:这也是组合数递推计算的依据(M3/M6)。
关联 · 杨辉递推组合数(M3):递推代码。
单选题: 等于?
考点:二项和等于 2 的 n 次方(F7)。
解析:(每个元素选/不选两种)。正确答案 A。
排除法:B 漏掉两端;C/D 无依据。
关联 · 组合数的对称性(F4):二项和的组合意义。
单选题: 个男生、 个女生排成一排,两个女生必须相邻,共有多少种排法?
考点:捆绑法(G1)。
解析:两女生捆成 1 个整体 → 4 个对象排列 ,内部 → 。正确答案 A。
排除法:B 是普通全排;C 漏了整体排列;D 漏了内部。
关联 · 捆绑法计数(N3):代码版 48。
大纲注:捆绑/插空/隔板等计数技巧在 NOI 2025 大纲中未单列,属排列组合【4】的标准应用、初赛高频。
单选题: 个男生、 个女生排成一排,两个女生不相邻,共有多少种排法?
考点:插空法(G2)。
解析:3 男先排 ,产生 4 个空位,2 女插空 → 。正确答案 A。
排除法:B 是捆绑法答案;C 是普通全排;D 无依据。
关联 · 插空法计数(N4):代码版 72。
大纲注:同 G1,属组合【4】标准应用。
单选题:把 个相同的苹果分给 个人,每人至少 1 个,共有多少种分法?
考点:隔板法(G3)。
解析:7 个相同苹果排一行有 6 个空隙,插 2 块隔板分 3 组 → 。正确答案 A。
排除法:B(21)是 ;C 是 ;D 是 。
关联 · 隔板法计数(N5):代码版 15。
大纲注:同 G1,属组合【4】标准应用。
单选题: 个人排成一排,甲必须站在最前面,共有多少种排法?
考点:特殊元素优先(G4)。
解析:甲固定最前 → 其余 5 人任意排 。正确答案 A。
排除法:B 是没固定;C/D 无依据。
关联 · 全排列(F2):固定一个位置少一个自由度。
大纲注:同 G1,属排列【4】标准应用。
单选题:把单词 AAB 的 个字母全部排成一行(两个 相同),共有几种不同排列?
考点:有重复元素的排列(G5)。
解析:(两个 A 相同,除以重复阶乘)——AAB、ABA、BAA。正确答案 A。
排除法:B 把相同 A 当不同;C/D 无依据。
关联 · 全排列(F2):去重除以重复元素阶乘。
大纲注:多重集排列在 NOI 2025 大纲中未单列(提高级【6】才列),本处仅作排列【4】的应用保留。
判断题:"必须相邻"用捆绑、"不能相邻"用插空、"相同物品分组"用隔板——先识别约束再选技巧。
考点:技巧的识别(G6)。
解析:相邻→捆绑、不相邻→插空、相同物品分组→隔板——先识别约束。✅ 正确
排除法:无(判断题)。混淆点:约束识别错则技巧用错,答案差一个量级。
关联 · 捆绑法(G1):技巧总览。
大纲注:同 G1,属组合【4】标准应用。
单选题:关于自然数 ,下列说法正确的是?
考点:1 的特殊性(H1)。
解析:1 是任何数的约数,且既非素也非合。正确答案 A。
排除法:B/C 错;D——1 的约数就是 1 自己,不是"没有"。
关联 · 合数与 1(A3):概念题代码化。
单选题:()按组合意义应为?
考点:组合数 k 大于 n(H2)。
解析:选不出 k 个 → 组合意义为 0(程序公式可能算错,需特判)。正确答案 A。
排除法:B/C/D 无依据。
关联 · 组合数的边界(P5):
if (k > n) return 0。
判断题:埃氏筛从 开始标记 的倍数(而不是 ),因为小于 的合数已被更小的质数标记过。
考点:筛法的起始位置(H3)。
解析:从 开始: 都有更小的质因子、已被标记。✅ 正确
排除法:无(判断题)。混淆点:从 2p 开始只是慢、不错;从 p 开始会把自己标掉(P2)。
关联 · 筛法起始位置错(P2):错误示范输出 0。
判断题:以下结论全部正确——"、,且 ;两个不同的质数互质; 对称成立"。
考点:数论综合判断(H4)。
解析:三句全部正确:();不同质数互质;组合对称。✅ 正确
排除法:无(判断题)。混淆点:这是本章骨架,逐条对照各组题目。
关联 · 最小公倍数(B4): 恒等式。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 17; 05 bool prime = true; 06 for (int i = 2; i * i <= n; i++) // 试除到 sqrt(n) 07 if (n % i == 0) prime = false; 08 cout << (prime ? "YES" : "NO"); 09 return 0; 10}
单选题:程序输出是?
考点:试除判断素数(I1)。
解析: 试除 均不整除 → YES。正确答案 A。
实现要点:素数判定 = 试除到 (i * i <= n)+ 整除即标记。手算: 不是 的倍数。
排除法:B 是合数的输出;C/D 不是输出。
关联 · 试除法判定素数(C1):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 100, cnt = 0; 05 for (int i = 2; i * i <= n; i++) cnt++; // 统计循环执行次数 06 cout << cnt; 07 return 0; 08}
单选题:程序输出是?
考点:试除次数统计(I2)。
解析:(),共 9 次。正确答案 A。
实现要点:i * i <= n 的循环次数 = 。手算:。
排除法:B 是 ;C 是 ;D 差 1。
关联 · 试除范围到平方根(C2):范围的量化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 12, cnt = 0; 05 for (int i = 1; i <= n; i++) 06 if (n % i == 0) cnt++; // 统计约数个数 07 cout << cnt; 08 return 0; 09}
单选题:程序输出是?
考点:约数个数(I3)。
解析:12 的约数 1,2,3,4,6,12 → 6 个。正确答案 A。
实现要点:约数统计 = 逐个 n % i == 0。手算:列出全部约数。
排除法:B 漏算;C 是数本身;D 无依据。
关联 · 约数与倍数(A4):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 12; 05 for (int i = 1; i <= n; i++) 06 if (n % i == 0) cout << i << " "; // 输出全部约数 07 return 0; 08}
单选题:程序输出是?
考点:输出全部约数(I4)。
解析:1 2 3 4 6 12。正确答案 A。
实现要点:约数输出 = 循环 + 整除判断 + 输出。手算:升序列出。
排除法:B 是降序;C/D 缺项或错误。
关联 · 约数个数(I3):计数版与输出版同框架。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 60; 05 for (int i = 2; i * i <= n; i++) 06 while (n % i == 0) { cout << i << " "; n /= i; } // 除尽当前质因子 07 if (n > 1) cout << n; // 剩下的 > 1 的部分也是质因子 08 return 0; 09}
单选题:程序输出是?
考点:质因数分解输出(I5)。
解析: → 2 2 3 5。正确答案 A。
实现要点:分解 = 试除当前因子除尽(while)+ 剩余 n > 1 收尾。手算:。
排除法:B 漏了重复的 2;C 混入合数 4;D 多出 6。
关联 · 质因数分解(唯一分解定理)(A5):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 60, cnt = 0; 05 for (int i = 2; i * i <= n; i++) 06 while (n % i == 0) { cnt++; n /= i; } 07 if (n > 1) cnt++; 08 cout << cnt; // 质因子个数(按重数计) 09 return 0; 10}
单选题:程序输出是?
考点:质因子个数(I6)。
解析:,按重数计 4 个。正确答案 A。
实现要点:分解中每除一次计数 + 收尾 +1。手算:2, 2, 3, 5。
排除法:B 按不同质因子计(2,3,5 共 3 个);C/D 无依据。
关联 · 质因数分解输出(I5):同框架计数版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a = 48, b = 36; 05 while (b) { // 辗转相除 06 int t = a % b; 07 a = b; b = t; 08 } 09 cout << a; 10 return 0; 11}
单选题:程序输出是?
考点:辗转相除迭代版(J1)。
解析:, → gcd 12。正确答案 A。
实现要点:迭代版 = while (b) { t = a % b; a = b; b = t; }。手算:取模序列 。
排除法:B(6)错算;C(4)无依据;D(24)是中间值。
关联 · 辗转相除法(B2):算法代码。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a = 48, b = 36; 05 while (b) { 06 int t = a % b; 07 cout << t << " "; // 输出每次的余数 08 a = b; b = t; 09 } 10 return 0; 11}
单选题:程序输出是?
考点:辗转相除过程输出(J2)。
解析:、 → 12 0。正确答案 A。
实现要点:过程输出 = 每轮打印余数。手算:逐轮写余数。
排除法:B 是输入;C 顺序反;D 漏了 0。
关联 · 辗转相除迭代版(J1):过程与结果同源。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a = 4, b = 6; 05 int g = a, x = b; 06 while (x) { // 先求 gcd 07 int t = g % x; g = x; x = t; 08 } 09 cout << a / g * b; // lcm = a * b / gcd 10 return 0; 11}
单选题:程序输出是?
考点:最小公倍数输出(J3)。
解析:,。正确答案 A。
实现要点:先 gcd 再 a / g * b(先除后乘防溢出)。手算:。
排除法:B 是乘积;C 是 gcd;D 无依据。
关联 · 最小公倍数(B4):公式代码。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a = 48, b = 36; 05 while (a != b) { // 更相减损 06 if (a > b) a -= b; 07 else b -= a; 08 } 09 cout << a; 10 return 0; 11}
单选题:程序输出是?
考点:更相减损版(J4)。
解析:,, → 12。正确答案 A。
实现要点:while (a != b) 大减小。手算:逐步相减。
排除法:B 是输入;C/D 无依据。
关联 · 更相减损的原理(B7):减法版代码。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a[4] = {24, 36, 48, 60}; 05 int g = a[0]; 06 for (int i = 1; i < 4; i++) { // 逐个求 gcd 07 int x = g, y = a[i]; 08 while (y) { int t = x % y; x = y; y = t; } 09 g = x; 10 } 11 cout << g; 12 return 0; 13}
单选题:程序输出是?
考点:多个数的 gcd(J5)。
解析:,, → 12。正确答案 A。
实现要点:逐个合并:g = gcd(g, a[i])。手算:两两相求。
排除法:B 是最大数;C 漏因子;D 无依据。
关联 · 辗转相除迭代版(J1):两数版的推广。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a = 24, b = 36; // 分数 24/36 05 int x = a, y = b; 06 while (y) { int t = x % y; x = y; y = t; } // x = gcd 07 cout << a / x << "/" << b / x; 08 return 0; 09}
单选题:程序输出是?
考点:分数化简(J6)。
解析: → 。正确答案 A。
实现要点:化简 = 分子分母同除 gcd。手算:。
排除法:B 是原分数;C 未约尽;D 错。
关联 · 最大公约数的定义(B1):gcd 的应用。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 bool isp[20] = {0}; // false = 暂定质数 05 for (int i = 2; i <= 19; i++) 06 if (!isp[i]) 07 for (int j = i * i; j <= 19; j += i) isp[j] = true; // 标记倍数 08 for (int i = 2; i <= 19; i++) 09 if (!isp[i]) cout << i << " "; 10 return 0; 11}
单选题:程序输出是?
考点:埃氏筛输出质数(K1)。
解析:20 以内质数:2, 3, 5, 7, 11, 13, 17, 19。正确答案 A。
实现要点:埃氏筛 = 质数倍数标记 + 未标记者输出。手算:逐质数划掉倍数。
排除法:B 混入 9;C 是合数;D 混入 1。
关联 · 埃氏筛的思想(C3):算法代码。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 20, cnt = 0; 05 bool isp[21] = {0}; 06 for (int i = 2; i <= n; i++) 07 if (!isp[i]) { 08 cnt++; 09 for (int j = i * i; j <= n; j += i) isp[j] = true; 10 } 11 cout << cnt; 12 return 0; 13}
单选题:程序输出是?
考点:埃氏筛质数个数(K2)。
解析:20 以内质数 8 个。正确答案 A。
实现要点:筛 + 计数。手算:同上。
排除法:B(9)把 1 也算上;C 是 n;D 少一个。
关联 · 埃氏筛输出质数(K1):计数版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 20, primes[20], cnt = 0; 05 bool notp[21] = {0}; 06 for (int i = 2; i <= n; i++) { 07 if (!notp[i]) primes[cnt++] = i; 08 for (int j = 0; j < cnt && i * primes[j] <= n; j++) { 09 notp[i * primes[j]] = true; 10 if (i % primes[j] == 0) break; // 最小质因子只筛一次 11 } 12 } 13 cout << cnt; 14 return 0; 15}
单选题:程序输出是?
考点:线性筛质数个数(K3)。
解析:线性筛结果同为 8 个。正确答案 A。
实现要点:线性筛核心 = 每个合数用最小质因子筛一次(i % primes[j] == 0 即 break)。手算:与埃氏筛结果一致。
排除法:B(9)把 1 算上;C/D 无依据。
关联 · 线性筛(欧拉筛)(C5):算法代码。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 bool isp[21] = {0}; 05 for (int i = 2; i <= 20; i++) 06 if (!isp[i]) 07 for (int j = i * i; j <= 20; j += i) isp[j] = true; 08 for (int i = 10; i <= 20; i++) // 只输出 [10, 20] 的质数 09 if (!isp[i]) cout << i << " "; 10 return 0; 11}
单选题:程序输出是?
考点:区间质数输出(K4)。
解析: 的质数:11, 13, 17, 19。正确答案 A。
实现要点:全量筛 + 区间过滤输出。手算:10~20 逐个判断。
排除法:B 混入 10;C 混入 15;D 混入 20。
关联 · 筛法的应用(C6):筛 + 区间查询。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int d[11] = {0}; 05 for (int i = 1; i <= 10; i++) // i 是约数,给它的倍数加 1 06 for (int j = i; j <= 10; j += i) d[j]++; 07 cout << d[10]; // 10 的约数个数 08 return 0; 09}
单选题:程序输出是?
考点:筛法求约数个数(K5)。
解析: 被 各加 1 → 4。正确答案 A。
实现要点:约数筛 = 每个 i 给它的倍数 +1(反向筛法)。手算:列出 10 的约数。
排除法:B(3)漏算 1 或 10;C 是数本身;D 无依据。
关联 · 约数个数(I3):筛法版 vs 试除版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 bool isp[11] = {0}; 05 for (int i = 2; i <= 10; i++) 06 if (!isp[i]) 07 for (int j = i * i; j <= 10; j += i) isp[j] = true; 08 for (int i = 2; i <= 10; i++) // P = 质数,C = 合数 09 cout << (isp[i] ? 'C' : 'P'); 10 return 0; 11}
单选题:程序输出是?
考点:筛法标记输出(K6)。
解析:2~10:2P 3P 4C 5P 6C 7P 8C 9C 10C → PPCPCPCCC。正确答案 A。
实现要点:标记数组输出 P/C。手算:逐数判断。
排除法:B 全 P;C 全 C;D 7 位置错。
关联 · 埃氏筛输出质数(K1):标记视角。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 20, cnt = 0; 05 bool isp[21] = {0}; 06 for (int i = 2; i <= n; i++) 07 if (!isp[i]) { 08 cnt++; 09 for (int j = ______; j <= n; j += i) isp[j] = true; // 从 i*i 开始标记 10 } 11 cout << cnt; 12 return 0; 13}
单选题:横线处应填入?
考点:补全埃氏筛(K7)。
解析:从 i * i 开始标记(H3)。运行:质数个数 8。正确答案 A。
实现要点:埃氏筛三要素 = 未标记即质数 + 从 标记 + 步长 。手算:验证计数。
排除法:B(2i)多标但不错;C 把自己标掉(P2);D 无依据。
关联 · 筛法的起始位置(H3):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a = 7, b = 2; 05 cout << a / b; // 整数除法 = 向下取整 06 return 0; 07}
单选题:程序输出是?
考点:向下取整输出(L1)。
解析:7 / 2 = 3(整数除法截断)。正确答案 A。
实现要点:C++ 整数除法 = 向下取整(正数时)。手算:。
排除法:B 是上取整;C 是浮点;D 无依据。
关联 · 向下取整(D1):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 10, m = 3; // 10 件物品、每袋最多 3 件 05 cout << (n + m - 1) / m; // 向上取整 06 return 0; 07}
单选题:程序输出是?
考点:向上取整输出(L2)。
解析:(4 袋:3+3+3+1)。正确答案 A。
实现要点:上取整公式 = (n + m - 1) / m。手算:,还需 1 袋。
排除法:B 是下取整(3 袋装不下);C/D 无依据。
关联 · 向上取整(D2):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 cout << 17 % 5; 05 return 0; 06}
单选题:程序输出是?
考点:模运算输出(L3)。
解析: → 2。正确答案 A。
实现要点:余数 = a - (a / b) * b。手算: 余 2。
排除法:B 是商;C 是模数;D 无依据。
关联 · 模运算的定义(D3):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 cout << (-7) % 3; // C++ 负数取模:符号与被除数一致 05 return 0; 06}
单选题:程序输出是?
考点:负数取模输出(L4)。
解析:(-7) % 3 = -1(C++ 符号随被除数)。正确答案 A。
实现要点:负数取模易错——需要数学余数时用 (x % m + m) % m。手算:。
排除法:B(2)是数学余数;C/D 无依据。
关联 · 负数取模(D4):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a = 17, b = 25, m = 7; 05 cout << (a + b) % m << " "; // 直接算 06 cout << (a % m + b % m) % m; // 拆开算 07 return 0; 08}
单选题:程序输出是?
考点:模的加法验证(L5)。
解析:; → 0 0。正确答案 A。
实现要点:验证题 = 两法同算比对。手算:、、。
排除法:B/C/D 计算错。
关联 · 模的加法性质(D5):性质的代码验证。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 long long a = 123456789, b = 987654321; 05 int m = 10; 06 cout << (a % m) * (b % m) % m; // 先取模再乘,防溢出 07 return 0; 08}
单选题:程序输出是?
考点:模的乘法防溢出(L6)。
解析:、,。正确答案 A。
实现要点:大数乘积取模 = 先各取模再乘再取模。手算:只看个位。
排除法:B(1)错;C/D 无依据。
关联 · 模的乘法性质(D6):防溢出的应用。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 long long f = 1; 05 for (int i = 1; i <= 5; i++) f *= i; 06 cout << f; 07 return 0; 08}
单选题:程序输出是?
考点:阶乘输出(M1)。
解析:。正确答案 A。
实现要点:f *= i 累积;注意用 long long 防溢出(P4)。手算:逐项乘。
排除法:B 是 4!;C 是 1+2+3+4+5;D 是 5!/2。
关联 · 排列数公式(F1):阶乘是排列组合计算的基础。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int ans = 1; 05 for (int i = 5; i >= 3; i--) ans *= i; // A(5,3) = 5*4*3 06 cout << ans; 07 return 0; 08}
单选题:程序输出是?
考点:排列数输出(M2)。
解析:。正确答案 A。
实现要点:排列数 = 从 连乘 项(for i = n; i >= n-k+1; i--)。手算:。
排除法:B 是 5!;C 是 ;D 是 。
关联 · 排列数公式(F1):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int c[6][6] = {0}; 05 for (int i = 0; i <= 5; i++) { 06 c[i][0] = c[i][i] = 1; 07 for (int j = 1; j < i; j++) 08 c[i][j] = c[i - 1][j - 1] + c[i - 1][j]; 09 } 10 cout << c[5][2]; // C(5,2) 11 return 0; 12}
单选题:程序输出是?
考点:杨辉递推组合数(M3)。
解析:。正确答案 A。
实现要点:杨辉递推 = ,边界 。手算:第 5 行 1 5 10 10 5 1。
排除法:B 是 ;C 是 ;D 是 。
关联 · 杨辉恒等式(F6):递推公式的代码实现。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 6, k = 3; // C(6,3) = 6*5*4 / (3*2*1) 05 long long a = 1, b = 1; 06 for (int i = 0; i < k; i++) a *= (n - i); 07 for (int i = 1; i <= k; i++) b *= i; 08 cout << a / b; 09 return 0; 10}
单选题:程序输出是?
考点:公式计算组合数(M4)。
解析:。正确答案 A。
实现要点:分子连乘 项、分母 ,最后相除。手算:。
排除法:B 是 ;C 是 的一半;D 是 。
关联 · 组合数公式(F3):公式的直接实现。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int c[6][6] = {0}; 05 for (int i = 0; i <= 5; i++) { 06 c[i][0] = c[i][i] = 1; 07 for (int j = 1; j < i; j++) 08 c[i][j] = c[i - 1][j - 1] + c[i - 1][j]; 09 } 10 for (int j = 0; j <= 5; j++) cout << c[5][j] << " "; // 第 5 行 11 return 0; 12}
单选题:程序输出是?
考点:杨辉三角输出(M5)。
解析:第 5 行 = 1 5 10 10 5 1。正确答案 A。
实现要点:行下标从 0 开始,第 行是 。手算:。
排除法:B 是第 4 行;C 少了中间的 10;D 缺两边 1。
关联 · 杨辉递推组合数(M3):整行输出 vs 单点取值。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int c[5][5] = {0}; 05 for (int i = 0; i <= 4; i++) { 06 c[i][0] = c[i][i] = 1; 07 for (int j = 1; j < i; j++) 08 c[i][j] = ______; // 杨辉递推 09 } 10 cout << c[4][2]; 11 return 0; 12}
单选题:横线处应填入?
考点:补全杨辉递推(M6)。
解析:填 c[i - 1][j - 1] + c[i - 1][j](杨辉恒等式 )。正确答案 A。
实现要点:递推必须先算完上一行;边界列单独赋值。运行:。
排除法:B 相减错;C 用本行已算项(顺序依赖,且语义错);D 乘 2 无依据。
关联 · 杨辉恒等式(F6):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int m[3] = {2, 3, 4}; // 三类互斥方案的做法数 05 int sum = 0; 06 for (int i = 0; i < 3; i++) sum += m[i]; // 加法原理:相加 07 cout << sum; 08 return 0; 09}
单选题:程序输出是?
考点:加法原理计数(N1)。
解析:三类互斥方案相加:。正确答案 A。
实现要点:加法原理 = 分类互斥 → 相加。手算:。
排除法:B 是连乘();C 漏一类;D 无依据。
关联 · 加法原理(E1):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int s[3] = {2, 3, 2}; // 三步各自的做法数 05 int prod = 1; 06 for (int i = 0; i < 3; i++) prod *= s[i]; // 乘法原理:相乘 07 cout << prod; 08 return 0; 09}
单选题:程序输出是?
考点:乘法原理计数(N2)。
解析:三步连续相乘:。正确答案 A。
实现要点:乘法原理 = 分步独立 → 相乘。手算:。
排除法:B 是相加;C 无依据;D 多乘一次。
关联 · 乘法原理(E2):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int f4 = 1; 05 for (int i = 1; i <= 4; i++) f4 *= i; // 捆绑后 4 个整体排列 06 cout << 2 * f4; // 两人内部再排列(2!) 07 return 0; 08}
单选题:程序输出是?
考点:捆绑法计数(N3)。
解析:两人捆绑成 1 个整体 → 4 个整体排列 ,内部再排 :。正确答案 A。
实现要点:捆绑法 = 相邻元素先捆再排、内部再排。手算:。
排除法:B 是 4!(忘了内部再排);C 是 ;D 是 5!。混淆点:捆绑后内部还要再乘 。
关联 · 捆绑法(G1):概念题代码化。
大纲注:捆绑/插空/隔板等计数技巧在 NOI 2025 大纲中未单列,属排列组合【4】的标准应用、初赛高频。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int f3 = 1; 05 for (int i = 1; i <= 3; i++) f3 *= i; // 3 个男生排列 06 cout << f3 * (4 * 3); // 4 个空位插 2 个女生:A(4,2) 07 return 0; 08}
单选题:程序输出是?
考点:插空法计数(N4)。
解析:3 男生排好 → 4 个空位插 2 女生 :。正确答案 A。
实现要点:插空法 = 不相邻元素先排他者、再往空位插(注意空位数 = 已排个数 + 1)。手算:。
排除法:B 是 ;C 只排男生;D 多算。
关联 · 插空法(G2):概念题代码化。
大纲注:同 G1,属组合【4】标准应用。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int c = 6 * 5 / 2; // C(6,2):7 个相同物品、3 组、每组至少 1 05 cout << c; 06 return 0; 07}
单选题:程序输出是?
考点:隔板法计数(N5)。
解析:7 个相同物品分 3 组每组至少 1 → 6 个空隙插 2 块隔板:。正确答案 A。
实现要点:隔板法 = 每组至少 1 时 。手算:。
排除法:B 是 误用;C 是 ;D 无依据。
关联 · 隔板法(G3):概念题代码化。
大纲注:同 G1,属组合【4】标准应用。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int c[8][8] = {0}; 05 for (int i = 0; i <= 7; i++) { 06 c[i][0] = c[i][i] = 1; 07 for (int j = 1; j < i; j++) 08 c[i][j] = c[i - 1][j - 1] + c[i - 1][j]; 09 } 10 cout << c[7][3]; // C(7,3) 11 return 0; 12}
单选题:程序输出是?
考点:组合计数综合(N6)。
解析:杨辉表 。正确答案 A。
实现要点:大范围组合数用杨辉递推(避免阶乘溢出);。手算:。
排除法:B 是 ;C 是 ;D 是 错算。
关联 · 杨辉递推组合数(M3):更大规模版本。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 17; 05 bool prime = true; 06 for (int i = 2; ______; i++) // 试除范围到 sqrt(n) 07 if (n % i == 0) prime = false; 08 cout << (prime ? "YES" : "NO"); 09 return 0; 10}
单选题:横线处应填入?
考点:补全素数判断(O1)。
解析:填 i * i <= n(试除到 )。运行: 为素数 → YES。正确答案 A。
实现要点:素数判定三件套 = 特判 1 + 试除到 + 整除即否定。手算: 不被 整除。
排除法:B 会把自己算进去(P1);C 漏了 边界;D 范围偏大但正确性存疑。
关联 · 试除范围到平方根(C2):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a = 48, b = 36; 05 while (b) { 06 int t = ______; // 取余数 07 a = b; b = t; 08 } 09 cout << a; 10 return 0; 11}
单选题:横线处应填入?
考点:补全辗转相除(O2)。
解析:填 a % b(每轮取余数)。运行:、 → gcd 12。正确答案 A。
实现要点:辗转相除迭代 = while (b) { t = a % b; a = b; b = t; }。手算:余数序列 。
排除法:B 是整除不是取余;C 是更相减损;D 无意义。
关联 · 辗转相除迭代版(J1):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 bool isp[20] = {0}; 05 for (int i = 2; i <= 19; i++) 06 if (!isp[i]) 07 for (int j = ______; j <= 19; j += i) isp[j] = true; 08 int cnt = 0; 09 for (int i = 2; i <= 19; i++) if (!isp[i]) cnt++; 10 cout << cnt; 11 return 0; 12}
单选题:横线处应填入?
考点:补全埃氏筛(O3)。
解析:填 i * i(从 开始标记, 的 已被更小质因子标过)。运行:质数个数 8。正确答案 A。
实现要点:埃氏筛三要素 = 未标记即质数 + 从 标记 + 步长 。手算:2~19 共 8 个质数。
排除法:B 从 开始也能对但多标无意义;C 把自己标掉(P2);D 漏标记。
关联 · 筛法的起始位置(H3):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 60; 05 for (int i = 2; i * i <= n; i++) 06 while (______) { cout << i << " "; n /= i; } // 除尽当前质因子 07 if (n > 1) cout << n; 08 return 0; 09}
单选题:横线处应填入?
考点:补全质因数分解(O4)。
解析:填 n % i == 0(while 除尽当前质因子)。运行: → 2 2 3 5。正确答案 A。
实现要点:分解 = 试除当前因子除尽 + 收尾 if (n > 1)。手算:。
排除法:B 条件取反;C 判断方向反;D 缺少整除语义。
关联 · 质因数分解输出(I5):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 10, m = 3; 05 cout << ______; // 向上取整 (n + m - 1) / m 06 return 0; 07}
单选题:横线处应填入?
考点:补全向上取整(O5)。
解析:填 (n + m - 1) / m(向上取整公式)。运行:。正确答案 A。
实现要点:上取整 = (n + m - 1) / m,避免浮点误差。手算:4 袋装 10 个(3+3+3+1)。
排除法:B 是下取整(装不下);C 等价但易错( 为 0 时错);D 无意义。
关联 · 向上取整(D2):公式填空。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int c[5][5] = {0}; 05 for (int i = 0; i <= 4; i++) { 06 c[i][0] = c[i][i] = 1; 07 for (int j = 1; j < i; j++) 08 c[i][j] = ______; // 杨辉递推 09 } 10 cout << c[4][1]; 11 return 0; 12}
单选题:横线处应填入?
考点:补全杨辉三角(O6)。
解析:填 c[i - 1][j - 1] + c[i - 1][j](杨辉恒等式)。运行:。正确答案 A。
实现要点:递推顺序:先边界、再内层;依赖上一行已算完。手算:第 4 行 1 4 6 4 1。
排除法:B 用本行未算项;C 自指无意义;D 乘 2 错。
关联 · 杨辉递推组合数(M3):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a = 4, b = 6; 05 int g = a, x = b; 06 while (x) { int t = g % x; g = x; x = t; } // g = gcd 07 cout << ______; // lcm = a * b / gcd 08 return 0; 09}
单选题:横线处应填入?
考点:补全最小公倍数(O7)。
解析:填 a / g * b(lcm = 先除后乘防溢出)。运行:。正确答案 A。
实现要点:lcm 公式 = a / gcd(a,b) * b,先除后乘防溢出。手算:,。
排除法:B 分子分母反;C 除错对象;D 溢出风险且非最小公倍数。
关联 · 最小公倍数输出(J3):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int n = 97; 05 bool prime = true; 06 for (int i = 2; i <= n; i++) // 错误:应 i * i <= n 07 if (n % i == 0) prime = false; 08 cout << (prime ? "YES" : "NO"); 09 return 0; 10}
单选题:程序输出是?(97 是素数,正确应输出 YES)
考点:试除范围写错(P1)。
解析: 时, 时 n % n == 0 → prime 被置 false → 输出 NO。正确答案 A。
实现要点:试除到 即可(),否则自己除自己必误判。手算: 是素数却被判 NO。
排除法:B 是正确写法才有的输出;C 循环有限不会死循环;D 语法合法。
关联 · 试除范围到平方根(C2):错误示范对照。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 bool isp[20] = {0}; 05 for (int i = 2; i <= 19; i++) 06 if (!isp[i]) 07 for (int j = i; j <= 19; j += i) isp[j] = true; // 错误:把质数自己也算进去了 08 int cnt = 0; 09 for (int i = 2; i <= 19; i++) if (!isp[i]) cnt++; 10 cout << cnt; 11 return 0; 12}
单选题:程序输出是?
考点:筛法起始位置错(P2)。
解析:j = i 起步把质数自己标 true → 2~19 全部被标 → 计数 0。正确答案 A。
实现要点:埃氏筛必须从 起步标记倍数。手算:2 从 2 标起,3 从 3 标起……全部标完。
排除法:B 是正确版本结果;C 是 2~19 个数;D 混入 1。
关联 · 筛法的起始位置(H3):错误示范对照。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a = 10, b = 4, m = 3; 05 cout << (a / b) % m << " "; // 先除后模 06 cout << (a % m) / (b % m) % m; // 错误示范:拆开除 07 return 0; 08}
单选题:程序输出是?(两值不同,说明模对除法不成立)
考点:模除错误示范(P3)。
解析:; → 2 1。正确答案 A。
实现要点:模运算不满足除法分配律——。手算:两值不同即反例。
排除法:B 若模可拆开则同值;C/D 计算错。
关联 · 模的除法不成立(D7):错误示范代码。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int f = 1; 05 for (int i = 1; i <= 30; i++) f *= i; // 30! 远超 int 范围 06 cout << f; 07 return 0; 08}
单选题:30! 约为多少?(这解释了为什么阶乘会溢出 int)
考点:阶乘溢出(P4)。
解析:,远超 ,int 必然溢出(未定义行为)。正确答案 A。
实现要点:阶乘增长极快—— 已超 long long,组合数大范围必须用杨辉递推或取模。手算:。
排除法:B 是 量级;C 是 ;D 是 量级。
关联 · 公式计算组合数(M4):为什么大组合数不用阶乘公式。
01#include <bits/stdc++.h> 02using namespace std; 03int C(int n, int k) { 04 if (k > n) return 0; // 约定:k > n 时组合数为 0 05 if (k == 0 || k == n) return 1; 06 return C(n - 1, k) + C(n - 1, k - 1); 07} 08int main() { 09 cout << C(4, 1) << " " << C(4, 3) << " " << C(4, 4); 10 return 0; 11}
单选题:程序输出是?
考点:组合数的边界(P5)。
解析:、、 → 4 4 1。正确答案 A。
实现要点:递归组合数三边界 = 返 0、 或 返 1;对称性 可剪半。手算:第 4 行 1 4 6 4 1。
排除法:B 把 当 3;C 全 4 错;D 把 代入第一位。
关联 · 组合数的对称性(F4):边界与对称的综合。
判断题:以下结论全部正确——";;埃氏筛从 开始标记;模运算对除法不直接成立"。
考点:数论代码综合判断(P6)。
解析:四条结论全部正确:① (J3/O7);② (F4);③ 埃氏筛从 标记(H3/O3);④ 模对除法不成立(D7/P3)。✅ 正确
排除法:无(判断题)。混淆点:③ 常被误以为从 起步——其实 已被更小质因子标记。
关联 · 本章全部核心结论:收官综合判断题。