题目描述
统计所有小于非负整数 n 的质数的数量。
示例:
输入: 10
输出: 4
解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
结果
这道题真的是一道简单题,因为一看到这道题肯定用筛选法求素数,直接空间换时间
class Solution {
public:
int countPrimes(int n) {
if(n < 2) return 0;
bool isPrime[n];
for(int i = 0; i < n; i++)
isPrime[i] = true;
for(int i = 2; i * i < n; i++)
{
if(!isPrime[i]) continue;
for(int j = i * i; j < n; j += i)
isPrime[j] = false;
}
int res = 0;
for(int i = 2; i < n; i++)
if(isPrime[i]) res++;
return res;
}
};