class Solution {
public:
int countPrimes(int n) {
if(n<=2) return 0;
int times[n];
for(int i=0;i<n;i++) times[i]=1;
for(int i=2;i<n;i++){
for(int j=2;i*j<n;j++){
int a = i*j -1;
times[a] = 0;
}
}
int count = 0;
for(int i=1;i<n-1;i++) {
if(times[i] == 1) count++;
}
return count;
}
};
一开始使用需要判断是否为质数的数去和[2,]下所有数模运算,但是很明显时间超了。后来使用倍数筛选法,通过。