算法-计数质数

题目:

给定整数 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;
    }
};
相关推荐
lvwangshu6 小时前
线性代数基础 Linear Algebra Basics
数学·算法
ZhouDevin7 小时前
算法论文/数据集5——AlignPrune(CVPR2026)基于样本损失时间序列精确识别噪声样本
算法
十铭忘8 小时前
HMM(隐马尔可夫模型)的理解7——Baum–Welch 算法
人工智能·算法
shylyly_8 小时前
stack/queue中的deque
数据结构·c++·deque·双端队列·queue·stack·容器适配器
明月_清风8 小时前
十大经典排序算法 Go 实现全解:从入门到面试通关
后端·算法·排序算法
liliangcsdn8 小时前
如何对IC时间序列进行汇总统计分析示例
人工智能·算法·机器学习
土司大王9 小时前
LeetCode hot100——缺失的第一个正数
数据结构·算法·leetcode
Cccp.1239 小时前
【leetcode】(二)认识O(NlogN)的排序
算法·leetcode
明月_清风9 小时前
算法时间复杂度:给小白的一堂"算快慢"课
后端·算法
vivo互联网技术9 小时前
TinySR:面向真实世界图像超分辨率的轻量级扩散模型
人工智能·算法