204. 计数质数

204. 计数质数

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

 

示例 1:

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

示例 2:

输入:n = 0
输出:0

示例 3:

输入:n = 1
输出:0

 

提示:

  • 0 <= n <= 5 * 106

 

解析:

素数筛板子,不要打表,直接求到n即可

复制代码
class Solution {
public:
    int vis[5000010];
    int prime[5000010];
    int phi[5000010];
    int ans;
    int init_prime(int n)
    {
        ans = 0;
        int ret = 0;
        memset(vis, 0, sizeof(vis));
        for(int i = 2; i < n; i++)
        {
            if(vis[i] == 0) 
            {
                prime[ans++] = i;
                for(long long j = (long long)i * i; j < n; j += i)
                    vis[j] = 1;
            }        
            ret += 1 - vis[i];
        }
        return ret;
    }

    int countPrimes(int n) {
        
        return init_prime(n);

    }
};
复制代码

 

posted @   WTSRUVF  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
历史上的今天:
2021-10-07 剑指 Offer II 047. 二叉树剪枝
2021-10-07 剑指 Offer II 049. 从根节点到叶节点的路径数字之和
2018-10-07 平面最近点对
2018-10-07 欧拉回路总结
点击右上角即可分享
微信分享提示