所谓筛选法,是指从小到大筛去一个已知素数的所有倍数。(这是我第一次听说筛选法)
例如:
根据2,我们可以筛去4,6,8,...,98,100等
根据3,我们可以筛去9,15,...,99等(6和12已经被筛去)
根据5,......
package com.cao.test;
public class Example_2 {
public static void main(String[] args) {
int[] a = new int[101];
int i,j;
for(i=1; i<101;i++)
{
a[i]=1; //作为标记,1为素数,0为非素数
}
for(i=2;i<101;i++)
{
if(a[i] != 0) //a[i]为素数
{
for(j = i+i;j<101;)
{
if(j%i==0)
{
a[j]=0; //将该素数的倍数标记为0
}
j = j+i;
}
}
}
for(i=2;i<101;i++)
if(a[i]!=0) //所有不为0的都是素数
System.out.println(i);
}
}