线性筛选法求素数——模板

求2~n范围内的素数模板

复制代码
 1 package com.lzp.util.algorithm.template;
 2 
 3 import java.util.Arrays;
 4 
 5 /**
 6  * @Author LZP
 7  * @Date 2021/5/29 16:12
 8  * @Version 1.0
 9  */
10 public class Prime {
11 
12     private static int[] primes;
13     private static boolean[] flag;
14 
15     public static void main(String[] args) {
16         prime(90);
17         System.out.println(Arrays.toString(primes));
18     }
19 
20     public static void prime(int n) {
21         primes = new int[n + 10];
22         flag = new boolean[n + 10];
23         // 线性筛选法求素数
24         int cnt = 0;
25         for (int i = 2; i <= n; i++) {
26             if (!flag[i]) {
27                 // 表示没有被筛选掉,就添加到素数数组中
28                 primes[cnt++] = i;
29             }
30             // 开始线性筛选该数的倍数
31             for (int j = 0; j < cnt && primes[j] <= n / i; j++) {
32                 // 筛选
33                 flag[primes[j] * i] = true;
34             }
35         }
36     }
37 }
复制代码

运行结果

 

posted @   没有你哪有我  阅读(68)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示