通过定义一个初值为0的整形变量count来统计质数的个数。 定义一布尔类型数组来作为if判断的条件(默认值全为false) 从二开始,依次进入循环,同时将该数的倍数对应的数组都赋值为true,可以使得后面的非质数都可以跳过计数环节。
public class S_204 {
public int countPrimes(int n) {
int count = 0;
boolean flag[] = new boolean[n];//初始全都false
for (int i = 2; i < n ; i++)
if (flag[i] == false){
count ++;
// 将后面的值赋值为true——可以跳出循环(不计数)
for (int j = 1; j * i < n ; j++)
flag[j * i] = true;
}
return count;
}
}