204. 计数质数
  1. 计数质数

难度简单400

统计所有小于非负整数 n 的质数的数量。

示例:

输入: 10
输出: 4
解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
// a.去掉偶数 
// b.去掉质数*质数
// 时间复杂度为O(n/2)*(n/2) O(n^2)
public int countPrimes(int n) {
    int res = 0;
    boolean [] b = new boolean[n];
    if(n>2) res++; //计算上2 

    for(int i=3;i<n;i+=2){//去掉偶数 
        if(!b[i]){//是质数
            for(int j=3;i*j<n;j+=2){ //质数乘以质数
                b[i*j] = true;
            }
            res++;
        }
    }
    return res;
}