leetcode+判断小于n的素数数目,筛法

点击打开链接
//筛法
class Solution {
public:
    int countPrimes(int n) {
        vector<bool> num(n+1, true);
        num[0] = false, num[1] = false;
        int res = 0, limit = sqrt(n);
        for(int i=2; i<=limit; i++){//2为质数,从2开始筛选
            if(num[i]){
                for(int j= i*2; j<=n; j+=i) num[j] = false;
            }
        }
        for(int j=2; j<n; j++){
            if(num[j]) res+=1;
        }
        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/u013554860/article/details/81050902