public class 艾斯筛法求素数
{
public static void main(String[] args)
{
boolean isPrime[] = new boolean [101];
Arrays.fill(isPrime,true); // 开始假定所以都是素数。
isPrime[0] = isPrime[1] = false; // 0 和 1 不是素数
for(int i = 2; i * i <= 100; i++) // 只要判断100开平方
{
if(isPrime[i] == true) // 假设是素数
{
for (int j = 2; j * i <= 100; j++)
{
isPrime[i * j] = false; // 对应的倍数为false
}
}
}
int n = 0;
for (int i = 0; i <= 100; i++) {
if(isPrime[i])
{
System.out.println(i);
n++; // 统计个数
}
}
System.out.println("素数个数:" + n);
}
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/a12d87a0cedccb93d355cb330559ac92.png)