204. 计数质数

 

labuladong 题解思路
难度中等

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

 

示例 1:

输入:n = 10
输出:4
解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。

示例 2:

输入:n = 0
输出:0

示例 3:

输入:n = 1
输出:0



复制代码
class Solution {
public:
    bool is_primes(int k) {
        for(int i = 2;i <= sqrt(k);i++){
            if (k%i==0) {
                return false;
            }
        }
        return true;
    }
    int countPrimes(int n) {
        int cnt = 0;
        for(int i =2;i <n;i++) {
            cnt+= is_primes(i)?1:0;
        }
        return cnt;
    }
};
复制代码

 

 

复制代码
class Solution {
public:

    int countPrimes(int n) {
        int cnt = 0;
        vector<bool> is_primes (n,true);
        for(int i = 2; i <= sqrt(n);i++) {
            for(int j = 2; j*i <n;j++) {
                is_primes[j*i] = false;
            }
        }
        for(int i =2;i <n;i++) {
            cnt+= is_primes[i]?1:0;
        }
        return cnt;
    }
};
复制代码

 

posted @   乐乐章  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示