据说某公司面试,问了10几个人竟然没人会求1-100间的素数
下面我们举例 写个从1到1000w之间素数的算法
最朴素的算法
package Algorithm.DP;
public class Prime {
int count=4;
public boolean isPrime(int i){
if(i%2==0)
return false;
if(i%3==0)
return false;
if(i%5==0)
return false;
if(i%7==0)
return false;
for(int j=8;j*j<=i;j++){
if(i%j==0)
return false;
}
count++;
return true;
}
public static void main(String [] args){
Prime prime=new Prime();
int [] array=new int[10000002];
for(int i=0;i<array.length;i++)
array[i]=i;
long startTime=System.currentTimeMillis();
for(int i=2;i<array.length;i++)
prime.isPrime(array[i]);
System.out.println("共有素数个数"+prime.count+" 计算花费时间"+(System.currentTimeMillis()