线性筛套一下模板

代码

class Solution {
   
public:
    int countPrimes(int n) {
   
        if (n < 2) return 0;
        vector<int> arr(n , 0);
        for (int i = 2; i < n;i ++) {
   
            if (!arr[i]) arr[++arr[0]] = i;
            for (int j = 1;j <= arr[0]; j++) {
   
                if (i * arr[j] >= n) break;
                arr[i * arr[j]] = 1;
                if (i % arr[j] == 0) break;
            }
        }
        return arr[0];
    }
};