算法-计数质数

题目:

给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。

思路:

使用埃式筛法

当n大于等于2时,如果当前遍历的数 i 是质数,那么从 i*i 开始,直到 n 为止,把 i 的倍数都标记为合数

代码:

cpp 复制代码
class Solution {
public:
    int countPrimes(int n) {
        if(n <= 2) return 0;
        vector<bool> isPrime(n + 1, true);
        for(int i = 2; i < n; i++){
            if(isPrime[i]){
                for(int j = i; j <= n / i; j++){
                    isPrime[i * j] = false;
                }
            }
        }

        int res = 0;
        for(int i = 2; i < n; i++){
            if(isPrime[i]) res++;
        }

        return res;
    }
};
相关推荐
故事和你9110 分钟前
洛谷-【图论2-2】最短路3
开发语言·数据结构·c++·算法·动态规划·图论
yong999014 分钟前
基于VC++的图像匹配金字塔算法
c++·算法·计算机视觉
Rhi63718 分钟前
第 4 篇:用JWT与角色权限构筑安全的API防线
算法
fengfuyao98530 分钟前
基于MATLAB的ALOHA防碰撞、二进制搜索算法和帧时隙算法
人工智能·算法·matlab
yongui4783434 分钟前
光伏逆变器完整控制程序
算法
吃好睡好便好35 分钟前
在Matlab中绘制峰值图
开发语言·学习·算法·matlab·信息可视化
此生决int39 分钟前
算法从入门到精通——滑动窗口
c++·算法·蓝桥杯
兩尛41 分钟前
std::shared_mutex、std::mutex和std::recursive_mutex是什么锁
开发语言·c++·算法
木井巳1 小时前
【递归算法】不同路径Ⅲ
java·算法·leetcode·深度优先
想带你从多云到转晴1 小时前
07、数据结构与算法---优先级队列(堆)与排序
java·数据结构·算法