实现“挨拉托色尼的筛子”
来源:互联网 发布:一采通采购软件 编辑:程序博客网 时间:2024/04/27 18:23
package algorithm;import java.util.ArrayList;/** * 实现“挨拉托色尼的筛子” * @author mike * */public class Sieve { /** * 输入:一个正整数,n>2 * 输出:包含所有小于等于n的质数的数组列表 * @param n * @return */ public static ArrayList<Integer> sieve(int n) { int[] A=new int[n+1]; ArrayList<Integer> result=new ArrayList<>(); //循环列出n以内大于1的整数,当成待筛选的数据 for (int i=2;i<=n;i++) { A[i]=i; } for (int i = 2; i < (int )Math.sqrt(n); i++) {//i*i不会大于n,故n的开根号向下取整 if (A[i]!=0) {//i没有被前面的步骤消去 int j=i*i; while (j<=n) { A[j]=0;//该元素标记为消去 j=j+i; } } } //将剩余的元素复制到result数组列表中 for (int i = 2; i <= n; i++) { if (A[i]!=0) { result.add(A[i]); } } //返回result数组列表 return result; } public static void main(String[] args) { ArrayList<Integer> result=sieve(12); System.out.println("result的大小:"+result.size()); for (int i = 0; i < result.size(); i++) { if (i%5==0) { System.out.println(); } System.out.print(result.get(i)+"\t"); } }}
0 0
- 实现“挨拉托色尼的筛子”
- 求质数的筛子
- 无形的筛子
- 筛子
- jquery实现掷筛子小游戏
- n个筛子的点数
- 用败者树实现求共同的元素(在归并程序上加上筛子)
- 43 n 个筛子 的点数
- 简单的摇筛子判断对比
- 给空白筛子涂色,保证两个筛子投掷数字每一个和的概率相等
- java 编的老虎机 掷筛子 面向过程!
- 面试题数据结构-n个筛子的点数
- 每日一题(70) - n个筛子的点数
- N个筛子,掷出M值的可能性
- 【C++】埃拉托色尼筛子表示一定范围内的素数
- 人的记忆像筛子,而忘却是一种智慧
- 初学python, 自己编的掷筛子小游戏
- 剑指offer面试题43:n个筛子的点数
- 6. 策略模式
- [Java] 实验1
- Hadoop原理 之 数据完整性
- java菜鸟须知
- js创建对象的几种方法
- 实现“挨拉托色尼的筛子”
- 云计算之docker篇
- JavaScript王者归来03
- SVN的基本使用
- leetcode随笔IV
- 我的网址收藏
- SQLyog 连不上MySQL , 并出现1045错误的解决方法
- UVA 10285
- socket 的通信过程