[LeetCode] 204. Count Primes
2017-06-19 15:53
274 查看
问题描述:
给定一个非负整数n,请求出小于n的素数的个数。
解题关键: 厄拉多塞筛法
STEP1: 建立从2到n的集合SET={2, 3, 4, ..., n}
STEP2: 每次从集合SET中取出最小的数A,这个数就是质数;
STEP3: 然后将集合中所有A的倍数删去,得到一个新的集合G',
重复上述步骤直到集合为空。
class Solution {
public:
int countPrimes(int n) {
vector<bool> bvec(n, true);
bvec[0] = false, bvec[1] = false;
int k = 2, cnt = 0;
while (k < n) {
for (; k < n && bvec[k] == false; k++)
;
if (k == n)
break;
cnt++;
for (int zoom = 1; zoom * k < n; zoom++)
bvec[zoom * k] = false;
}
return cnt;
}
};
给定一个非负整数n,请求出小于n的素数的个数。
解题关键: 厄拉多塞筛法
STEP1: 建立从2到n的集合SET={2, 3, 4, ..., n}
STEP2: 每次从集合SET中取出最小的数A,这个数就是质数;
STEP3: 然后将集合中所有A的倍数删去,得到一个新的集合G',
重复上述步骤直到集合为空。
class Solution {
public:
int countPrimes(int n) {
vector<bool> bvec(n, true);
bvec[0] = false, bvec[1] = false;
int k = 2, cnt = 0;
while (k < n) {
for (; k < n && bvec[k] == false; k++)
;
if (k == n)
break;
cnt++;
for (int zoom = 1; zoom * k < n; zoom++)
bvec[zoom * k] = false;
}
return cnt;
}
};
相关文章推荐
- LeetCode *** 204. Count Primes
- LeetCode-204. Count Primes
- 【LeetCode】204. Count Primes
- 【算法作业7】LeetCode 204. Count Primes
- leetcode No204. Count Primes
- Leetcode——204. Count Primes
- leetcode 204. Count Primes
- leetcode204. Count Primes
- leetcode 204. Count Primes
- leetcode_204. Count Primes 统计素数
- leetcode 204. Count Primes
- [LeetCode]204. Count Primes
- LeetCode 204. Count Primes
- LeetCode204. Count Primes
- Leetcode 204. Count Primes
- [leetcode]204. Count Primes
- 【leetcode】204. Count Primes
- LeetCode - 204. Count Primes
- Leetcode:204. Count Primes 求素数的优化问题
- leetcode - 204. Count Primes