算法-计数质数

题目:

给定整数 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;
    }
};
相关推荐
彧azz11 小时前
数据结构:关于图的学习
c语言·数据结构·笔记·学习·算法
热心网友俣先生11 小时前
A题-药材的烘干问题-题意逐句翻译
算法·数学建模
2601_9603563811 小时前
2026秋招运营分析师能力模型:SQL、指标体系、AIGC与业务分析
算法
hetao173383711 小时前
校内场-提高组 ZYZSC-S-Round 4
c++·算法
彧azz12 小时前
二叉搜索树学习记录
c语言·数据结构·笔记·算法
手写码匠12 小时前
DeepSeek 函数调用实战:从零搭建一个会“动手“的 AI 助手
人工智能·深度学习·算法·aigc
果壳science13 小时前
《自然本源》如何实现狭义相对论的代数化
笔记·算法·几何学
suhan13 小时前
【数据结构】二、线性表:2.单链表的定义与实现(带头结点与不带头结点的区别)
数据结构
302wanger14 小时前
分享一个工作习惯:整点看即时消息
算法
洋不写bug15 小时前
排序(一)基础排序,插入|希尔|冒泡|直接选择排序详解
java·算法·排序算法·插入排序·冒泡排序·希尔排序·直接选择排序