public class Sieve{ public static void main(String[] args){ int max=100; try { max = Integer.parseInt(args[0]); } catch (Exception ex) { } boolean[] isprime=new boolean[max+1]; for(int i=0;i<=max;i++) isprime[i]=true; isprime[0]=isprime[1]=false;
int n=(int)Math.ceil(Math.sqrt(max)); for(int i=0;i<=n;i++){ if(isprime[i]) for(int j=2*i;j<=max;j=j+i) isprime[j]=false; } int largest; for(largest =0;largest <= max;largest++) { if(isprime[largest]) System.out.print(" " + largest); }
// for(largest =max;!isprime[largest];largest--); 这是输出最大质数的算法~可以略过~// System.out.print(" "+largest); }}
转载于:https://www.cnblogs.com/J2EEPLUS/archive/2007/11/28/2487841.html
相关资源:Java 算法面试题 判断质数