学到一种新的方法Sieve of Eratosthenes,非常surprise,
leetcode上面已经把这个算法说的很清楚了,不过感觉算时间
复杂度还是有点复杂的,O(NLOGLOGN)
链接:https://leetcode.com/problems/count-primes/?tab=Description
class Solution {
public:
int countPrimes(int n) {
vector<bool> table(n, true);
for (int i = 2; i * i <= n; i++) {
if (table[i - 1]) {
int p = i * i;
while (p < n) {
table[p - 1] = false;
p += i;
}
}
}
int count = 0;
for (int i = 2; i < n; i++) {
if (table[i - 1]) {
count++;
}
}
return count;
}
};
本文介绍了一种高效的素数筛选算法——埃拉托斯特尼筛法,并通过LeetCode上的实例进行详细解析。该算法的时间复杂度为O(NloglogN),文章中提供了完整的C++实现代码。
702

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



