java学习笔记(2)

发布时间:2026/5/23 4:09:32

java学习笔记(2) 排除法筛法求素数一、原理思路排除法也叫筛法是批量查找素数的高效算法。核心思路为先默认范围内所有数字都是素数再从最小素数2开始依次把这个素数的所有倍数全部标记为合数最后剩下没有被标记的数字就是全部素数。相比逐个判断是否为素数筛法运算速度更快适合大范围筛选素数。二、Java完整代码javapublic class PrimeSieve {public static void main(String[] args) {int max 100;boolean[] flag new boolean[max 1];// 初始化数组默认全部为素数for (int i 2; i max; i) {flag[i] true;}// 筛选排除合数for (int i 2; i * i max; i) {if (flag[i]) {for (int j i * 2; j max; j i) {flag[j] false;}}}// 遍历输出所有素数System.out.println(“1到100之间所有素数”);for (int i 2; i max; i) {if (flag[i]) {System.out.print(i );}}}}三、代码详解首先定义布尔类型数组作为标记数组数组下标代表对应数字数值true代表是素数false代表是合数。完成初始化后外层循环遍历每一个数字若该数字未被标记说明是素数。内层循环将这个素数的所有倍数统一修改为合数标记。全部筛选完成后遍历数组打印下标即可得到所有素数。四、算法优点使用排除筛法批量筛选素数减少了大量重复判断逻辑代码逻辑简洁易懂执行效率高在学习数组运用和循环嵌套中十分常用也是基础算法学习里重点掌握的内容。

相关新闻