package Course_Codes; import java.util.Arrays; //要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。 public class 埃氏筛法 { public static void main(String[] args) { int n=10000; boolean isprime[]=new boolean[n+1]; Arrays.fill(isprime, true);//假定全部都是素数 //判断特殊情况:0 1 isprime[0]=false; isprime[1]=false; for(int i=2;i*i<=n;i++) { if(isprime[i]==true) for(int j=2;i*j<=n;j++) //是素数的2i,3i,4i....倍 isprime[i*j]=false; } int count=0; for(int i=2;i<=n;i++) { if(isprime[i]==true) { count++; System.out.println(i); } } System.out.printf("从1到%d,共有%d个素数", n,count); } }