int countPrimes(int n)
{
if (n < 2)
{
return 0;
}
int isPrime[n];
memset(isPrime, 0, sizeof(isPrime)); //初始化数组
int count = 0;
for (int i = 2; i < n; ++i)
{
if (!isPrime[i])
{
count += 1;
if ((long long)i * i < n)
{
for (int j = i * i; j < n; j += i)
{
isPrime[j] = 1;
}
}
}
}
return count;
}