Description:
Count the number of prime numbers less than a non-negative number, n.
This is to implement the famous: https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes algorithm.
int countPrimes(int n) {
if(n <= 2) return 0;
vector<bool> primes(n, true);
for(int i = 2; i < n; ++i) {
if(primes[i]) {
int j = i;
for(j = i; j + i < n; j = j + i) {
primes[j + i] = false;
}
}
}
int count = 0;
for(int i = 2; i < n; ++i) {
if(primes[i]) count++;
}
return count;
}
本文介绍了一种基于埃拉托斯特尼筛法的算法实现,用于计算小于给定非负整数n的所有素数的数量。该算法通过创建一个布尔型向量数组标记每个数是否为素数,并遍历所有小于n的数来更新这些标记。
719

被折叠的 条评论
为什么被折叠?



