GESP 五级 · GESP 202312 C++ 五级 第 14 题

选择题 · 答案 C · 考点:算法、二分查找

← 整套速查表 GESP 五级 全部真题

题目

小杨想编写一个判断任意输入的整数 $N$ 是否为素数的程序,下面哪个方法不合适?( )

答案:C

考点

算法二分查找 讲解 →二分查找 真题汇总 →

解题思维

这题考的是算法适用场景,核心在于理解‘判断’与‘查找’的本质区别。拿到题先想:二分法能直接用来判定素数吗?显然不能,它得依赖一个已经排好序的素数表。既然表是现成的,那‘判断’就失去了意义,逻辑上根本站不住脚。

常见错误

很多同学习惯把‘高级’等同于‘正确’,看到二分法就下意识觉得它快、它就合适,结果忽略了前提条件:二分必须建立在有序数据上。若题目是‘给定素数表,判断N是否在表中’,那C就完全合理了。但题干只给了一个整数N,让你‘判断’它是否为素数,这时候用二分法属于偷换概念——你还没生成素数表,二分无从下手;即便你硬生生预处理了一个表,那也变成了‘查表’而非‘判断’。命题人就是喜欢在这种边界条件上挖坑,让只背结论的同学掉进去。

详细解析(节选)

考点定位 GESP 五级算法复杂度与常用算法适用性。命题人用‘判断素数’这个经典问题,卡住考生对算法本质与边界条件的理解——许多学生只背了‘筛法快’或‘枚举简单’,却分不清‘筛法’与‘二分’的根本差异。

解题思维 二分法的核心是‘在有序数组中查找目标’,前提是数组已排好序。若用二分判断 N 是否为素数,意味着你已预先生成了素数表,这等于‘已经知道答案再查’,逻辑上无法作为‘判断素数’的方法。而枚举、埃氏筛、线性筛都是在‘未知’状态下通过计算得出结果,属于真正的判断方法。筛法本质是预处理素数表,适合批量判断;枚举适合单数判断;二分则完全错位。

陷阱拆解 选项 A/B 是筛法,本质是预处理素数表,适合批量判断;选项 D 是枚举,适合单数判断;选项 C 二分看似‘高级’,实则偷换概念——它不是判断方法,而是查找方法。命题人利用‘高级算法=好方法’的思维定势,把二分塞进判断场景,谁只背结论谁就掉坑。绝对化表述如‘哪个方法不合适’是典型陷阱,C 看似合理实则逻辑错误。

反命题思维 若题目改为‘给定素数表,判断 N 是否在表中’,C 就合理了;若题目改为‘求第 k 个素数’,筛法依然比二分更自然。记住:刷到‘判断/查找’类题,先问‘这题考的是算法能力还是数据结构能力’。

考频趋势与预测 结合题库数据看,枚举法共考过 159 题,是绝对主力,尤其在 GESP 五级(5 题)和 CSP 入门级(133 题)高频出现;质数与合数概念题共 52 题,其中 GESP 五级占了 29 题,说明五级对素数判定的考察非常集中。二分答案仅考了 6 题,且多集中在 GESP 八级和 CSP 提高级,五级里只出现过 1 次。二分查找相关题目共 39 题,五级有 16 题,但那是用二分查有序表,而非判断素数。

基于此,未来考试若继续聚焦五级算法,大概率仍会围绕‘素数判定’和‘枚举优化’出题,筛法与枚举依然是高频考点;而二分法在五级出现的概率极低,除非题目明确给出素数表或要求查第 k 个素数,否则不会再用二分去‘判断’素数。因此,选 C 是稳妥且符合命题规律的。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断