二、Prime Numbers
- 质数的核心定义
质数(素数)是数论最基础、计算机入门最经典的算法模型。
数学标准定义:
在大于 1 的自然数中,只能被 1 和自身整除的数,称为质数;
除质数和 1 以外的自然数,全部为合数。
核心特征:
质数最小为 2(唯一的偶数质数)
所有大于 2 的质数一定是奇数
质数没有除自身以外的因数
在 Java 课程体系中,质数算法不是单纯的数学题,而是考察循环结构、条件判断、算法优化思维的核心入门作业。 - 为什么课程必考质数算法?
很多初学者疑惑:为什么编程入门几乎必写质数?
原因如下:
(1)完美考察基础语法
质数判定必须用到:
for 循环遍历
if 条件判断
标记变量思维(flag)
边界条件处理
是所有复杂算法的前置基础。
(2)训练算法优化思想
质数算法存在明显的暴力解法 → 优化解法迭代过程,
能直观让初学者理解:
同样结果,不同代码效率天差地别。
(3)应用广泛
质数在计算机领域底层大量使用:
RSA 加密算法(网络安全核心)
哈希表扩容规则
随机数生成
数据分片、离散计算 - 质数判定核心原理分析
判定一个数 n 是否为质数,本质逻辑:
检查 2 ~ n-1 之间,是否存在可以整除 n 的数。
存在 → 合数
不存在 → 质数
传统暴力思路(初学者写法)
遍历:2 ~ n-1
问题:循环次数过多,大量无效遍历,效率极低
数学优化原理(课程重点)
数学结论:
若一个数 n 存在因数,则一定存在一个因数 小于等于 √n
所以只需遍历:
2 ~ √n
循环直接砍掉大半次数,效率大幅提升,这是课程作业必须掌握的优化写法。 - 易错边界总结(考试高频坑点)
1 不是质数
2 是最小质数、唯一偶质数
偶数除了 2 全部不是质数
负数不存在质数概念 - 完整代码实战
5.1 基础版:单数字质数判定

5.2 优化版:开平方优化修复循环语法顺序错误,规范平方根循环写法

5.3 进阶版:区间质数筛选(输出指定区间全部质数)修复缺失判断条件、循环语法错误,复用优化后的判定方法


浙公网安备 33010602011771号