学习内容:求1-n中素数的埃筛算法
代码如下(示例):
public static int eratosthenes(int n) {
//创建了一个布尔类数组
boolean[] isPrime=new boolean[n];//初始化为false,所以用false代表素数,true代表合数
int count=0;
for(int i=2;i<n;i++) {
if(!isPrime[i]){//如果值为false,count++,当i=2时,++;之后会进入一个循环
count++;
}
for(int j=i*i;j<n;j+=i) {//从i*i开始,可以避免遍历之前重复的元素
isPrime[j]=true;//将合数标记为0
}
}
return count;
}
优点:不用遍历全部n个元素,能通过22,23,24,(这个条件用j+=i实现)后面i增加后为33,34,35
等…