素数筛选法
来源:互联网 发布:淘宝考试以下不是催情 编辑:程序博客网 时间:2024/06/03 20:14
1、欧拉素数筛选法
用欧拉筛选法,可以让素数删除一次。要筛选出从1到n之间的素数,从2开始,每次将首部元素加入素数集合中,而将是首部元素倍数的数删除,为了避免重复删除,每次只是删除首部元素平方范围内的数。
具体代码如下:
public class Solution { public List<Integer> euler_sieve(int n) { List<Integer> primes = new ArrayList<>(); boolean[] vis = new boolean[n + 1]; int maxn = (int)Math.sqrt(n); for (int i = 2; i <= n; i++) { if (!vis[i]) { primes.add(i); } int prime_size = primes.size(); for (int j = 0; j < prime_size && i * primes.get(j) < n; j++) { vis[i * primes.get(j)] = true; if (i % primes.get(j) == 0) break; } } return primes; }}
2、分段筛选法
要求[1,n]区间的素数,如果n的值很大,可以先计算[1,sqrt(n)]区间的素数,然后再删除[sqrt(n)+1,n]间的非素数即可
0 0
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- Eratoshenes素数筛选法
- 素数--超强筛选法
- 素数筛选法
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 素数筛选法
- 素数筛选法2
- 筛选法求素数/
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 设计模式之原型模式20
- Java线程锁(二)——循环打印ABC
- ovs vswitchd的启动分析
- [POJ3612]telephone wire
- 用“射同基反”原则判断电路是否起振
- 素数筛选法
- java jdk 1.8 新增特性->( lambda特性)
- IT搬砖者的内心独白
- 字符串的旋转
- JAVA 学习之集合
- 数组字符串类笔试题
- 用户级线程和内核级线程的区别
- Xml中SelectSingleNode方法中的xpath用法
- 练习题目-炮弹防御