算法-计数质数

题目:

给定整数 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;
    }
};
相关推荐
姜鱼问生几秒前
服务器磁盘满了?从告警到清理的完整排查
后端·算法·架构
suhan2 分钟前
【数据结构】三、栈和队列:4.栈的应用(括号匹配,四则运算表达式求值,进制转换,递归)
数据结构·后端·算法
suhan10 分钟前
【数据结构】三、栈和队列:2.顺序栈&共享栈(顺序栈的初始化,判空,进栈,出栈,读取栈顶,顺序栈实例)
数据结构·后端·算法
iCxhust14 分钟前
Matlab求解发电机的极限切除角
开发语言·算法·matlab·电力系统
AI语宙漫游指南16 分钟前
RAG 向量检索(上):从 FLAT 到 IVF,查得快为何可能漏?
后端·算法
SelectDB37 分钟前
部署形态与存算分离速查:形态对照、配置项清单与关键命令片段
大数据·数据结构·数据库
垆边人似月.1 小时前
华为题:敏感词替换
算法
0+1111 小时前
算法 --哈希表
数据结构·算法·散列表
灯澜忆梦2 小时前
【面向对象编程c++】| 数组与函数
java·数据结构·c++
Interview Aid1122 小时前
Stripe VO 面经汇总:5 轮面试题目与考察重点
算法