LeetCode-204 计数质数

一、题目描述

统计所有小于非负整数 n 的质数的数量。
示例:
输入: 10
输出: 4
解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。

二、解题思路

用素数筛算法:https://zh.wikipedia.org/wiki/%E5%9F%83%E6%8B%89%E6%89%98%E6%96%AF%E7%89%B9%E5%B0%BC%E7%AD%9B%E6%B3%95

LeetCode-204 计数质数_第1张图片
image

三、代码实现

class Solution {
public:
    int countPrimes(int num) {
        vector vec(num ,true);
        int cnt = 0;
        for (int i = 2; i < num; i++) {
            if (vec[i]) cnt++;
            for (int j = i+i; j < num; j+=i) {
                vec[j] = false;
            }
        }
        return cnt;
    }
};

四、参考链接

https://leetcode-cn.com/problems/count-primes/solution/pythonzui-you-jie-fa-mei-you-zhi-yi-liao-ba-by-bru/

你可能感兴趣的:(LeetCode-204 计数质数)