一道经典面试题:计算n以内的素数(质数)算法
来源:互联网 发布:淘宝开店店铺描述 编辑:程序博客网 时间:2024/06/15 01:42
一个很经典的面试题,最好你先能自己实现。
import java.util.ArrayList;import java.util.Date;public class sushu {/** * 素数算法1 */static ArrayList<Integer> suan(int n){ArrayList<Integer> al = new ArrayList<Integer>();al.add(2);int max = (int)Math.sqrt(n);for (int i=3; i<=n; i+=2) {boolean is = true;for (Integer su : al) {if(su > max){break;} else if(i%su == 0){is = false;break;}}if(is){al.add(i);}}return al;}/** * 素数算法2 */static int[] suan1(int n) {int len = (int)Math.ceil(n/2.0);boolean[] al = new boolean[len];int max = (int)Math.ceil(Math.sqrt(n));int rs=len,i=0,ii=0,tm=0;for (i=3; i<=max; i+=2) {for (ii=i; ii<=n; ii+=2) {tm = i*ii;if(tm>n){break;}if(!al[tm>>1]){rs--;al[tm>>1] = true;}}}int[] arr = new int[rs];int j = 0;for(i=0;i<len;i++){if(!al[i]){arr[j++] = (i<<1)|1;}}arr[0]++;return arr;}public static void main(String[] args) {int n = Integer.parseInt(args[0]);long t = new Date().getTime();ArrayList<Integer> al = sushu.suan(n);long f = new Date().getTime();System.out.println("run:"+(f-t)+"ms size:"+al.size());// for (Integer a : al ) {// System.out.println(a);// }t = new Date().getTime();int[] al1 = sushu.suan1(n);f = new Date().getTime();System.out.println("run:"+(f-t)+"ms size:"+al1.length);// for (int a : al1 ) {// System.out.println(a);// }}}
0 0
- 一道经典面试题:计算n以内的素数(质数)算法
- 500以内质数(素数)的计算
- 计算N以内质数的个数
- java + 100以内的素数(质数)
- 计算n以内的所有素数
- Eratosthenes筛计算N以内的素数
- 一道经典的面试题
- 判断n以内的素数(高效算法)
- 找100以内的素数(经典算法------剔除法)
- java经典算法(一)求100以内的素数
- 计算n以内最大素数
- 一道经典的面试题:如何从N个数中选出最大(小)的n个数?
- 一道经典的面试题:如何从N个数中选出最大(小)的n个数?
- 一道经典的面试题:如何从N个数中选出最大(小)的n个数?
- 一道经典的面试题:如何从N个数中选出最大(小)的n个数?
- 一道经典的面试题:如何从N个数中选出最大(小)的n个数
- 一道经典的面试题:如何从N个数中选出最大(小)的n个数?
- 一道经典的面试题:如何从N个数中选出最大(小)的n个数?
- [Android] 简单的状态机实现
- Android中设置TimePickerDialog旧版样式
- Android通过Url传递数据,实现分享功能
- 学习使用Robot Framework自动化测试框架(二)——简单测试例子
- 单例中调用多例
- 一道经典面试题:计算n以内的素数(质数)算法
- java类静态域、块,非静态域、块,构造函数的初始化顺序
- mediaplayer在listview中 首页自动播放第一个item的问题
- Spark修炼之道(进阶篇)——Spark入门到精通:第十四节 Spark Streaming 缓存、Checkpoint机制
- 走进Linux之systemd启动过程
- 广东省第一届“强网杯” writeup
- Python基础教程(三):运算符、条件语句
- 读书笔记--IPC机制(二)
- IBInspectable / IBDesignable