LanQiaoTestCodes/埃氏筛法.java

32 lines
711 B
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}