算法-计数质数

题目:

给定整数 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;
    }
};
相关推荐
Q741_1476 分钟前
C++ 面试高频考点 链表 迭代 递归 力扣 25. K 个一组翻转链表 每日一题 题解
c++·算法·链表·面试·递归·迭代
_fairyland32 分钟前
数据结构 力扣 练习
数据结构·考研·算法·leetcode
Neil今天也要学习1 小时前
永磁同步电机无速度算法--基于三阶LESO的反电动势观测器
算法·1024程序员节
机器学习之心1 小时前
NGO-VMD北方苍鹰算法优化变分模态分解+皮尔逊系数+小波阈值降噪+信号重构,MATLAB代码
算法·matlab·重构·信号重构·ngo-vmd·皮尔逊系数·小波阈值降噪
橘颂TA1 小时前
【剑斩OFFER】算法的暴力美学——山脉数组的蜂顶索引
算法·leetcode·职场和发展·c/c++
速易达网络1 小时前
C语言常见推理题
java·c语言·算法
freedom_1024_2 小时前
LRU缓存淘汰算法详解与C++实现
c++·算法·缓存
博语小屋2 小时前
力扣11.盛水最多的容器(medium)
算法·leetcode·职场和发展
Swift社区2 小时前
LeetCode 423 - 从英文中重建数字
算法·leetcode·职场和发展
点云SLAM2 小时前
算法与数据结构之二叉树(Binary Tree)
数据结构·算法·二叉树·深度优先·广度优先·宽度优先