埃拉托色尼筛子
来源:互联网 发布:如何加强网络法治建设 编辑:程序博客网 时间:2024/06/10 19:37
埃拉托色尼的筛子是一个用来产生一个不大于给定整数n的连续质数序列。该算法一开始厨师化一个2-n的连续整数列,这些数中包含质数,作为候选质数。该算法通过循环,在算法的第一次循环中,先消去2的倍数,然后指向列表中的下一个书数-3,消去3的倍数,第三次循环消去5的倍数,第四次循环消去7的倍数,算法按这个方式不断做下去,直到序列中没有可以消去的数字,剩下的数字即为质数。
该算法的java实现如下
public static ArrayList<Integer> sieve(int n){ int[] arr = new int[n]; ArrayList<Integer> result = new ArrayList<>(); //初始化序列,将从2到n的所有整数当做待筛的的数据 for (int i = n-1 ; i > 1;i--){ arr[i] = i; } //消除非质数 for(int i = 2 ; i * i < n;i++){ if(arr[i] != 0){ int j= i * i; while(j <= n){ arr[j] = 0; j = j + i; } } } for (int i = 0 ;i < n ;i++){ if(arr[i] != 0){ result.add(arri]); } }}
0 0
- 埃拉托色尼筛子
- 埃拉托色尼筛子
- 筛子
- 【C++】埃拉托色尼筛子表示一定范围内的素数
- 筛子游戏
- 投掷筛子
- 筛子抽奖
- 筛子及类筛子题号
- 随机数例子 筛子点数
- 求质数的筛子
- 无形的筛子
- 抛筛子问题
- 筛子法求质数
- 掷筛子问题
- 实现“挨拉托色尼的筛子”
- 投筛子游戏
- 筛子类和筛子测试类(翻译转贴)
- (筛子法)hdu1286 & hdu1999
- 自动处理键盘事件的第三方库 IQKeyboardManager
- FragmentActivity调用add方法报错
- 解决linux系统下分区文件占用总空间比实际分区总容量要小却提示磁盘空间已满的问题
- iOS 多线程的状态
- linux 小结
- 埃拉托色尼筛子
- extjs导出Excel文档
- Army
- iOS#pragma mark的用法
- Axis2 开发
- Hello World!新开博客
- 外观模式
- JS基础操作
- Android练兵--基于OKHttp的升级改造