当前位置: 首页 > article >正文

leetcode做题笔记204. 计数质数

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

示例 1:

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

示例 2:

输入:n = 0
输出:0

示例 3:

输入:n = 1
输出:0

思路一:埃式筛法

c++解法

class Solution {
public:
    int countPrimes(int n)
{
    int a[n+1]; 
    int count = 0;
    for(int i = 2; i < n; i++)
        a[i] = 1;
    
    for(int i = 2; i < n; i++)
        if(a[i])
        {
            count++;
            for(int j = 2 * i; j < n; j += i)
                a[j] = 0;
        }
    
    return count;
}
};

分析:

本题求素数的问题,可以使用经典的埃氏筛法来解决,埃氏筛法的原理即将每个找到的素数在所求范围中筛去非素数,最后剩下的数即为所有此范围内的素数,可以先创建一个数组将每个遍历到的素数记录下来,筛去非素数并计数,最后返回答案即可

总结:

本题考察素数解法,利用埃氏筛法可快速计数出答案


http://www.kler.cn/news/107753.html

相关文章:

  • Day13力扣打卡
  • java 读取pdf文件内容
  • 2023年香水行业数据分析:国人用香需求升级,高端香水高速增长
  • 【神印王座】易军献身为林鑫挡箭,万万没想到林鑫太坑,大跌眼镜
  • LLM在text2sql上的应用 | 京东云技术团队
  • Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (四)
  • 听GPT 讲Rust源代码--library/std(7)
  • docker与宿主机共享内存通信
  • css正确的语法
  • 微服务-Feign
  • 决定放弃uniapp开发了,因为它实在是没有taro友好
  • 银河麒麟v10x86或者arm离线安装服务
  • 【Python入门教程】基于OpenCV视频分解成图片+图片组合成视频(视频抽帧组帧)
  • CentOS 使用线程库Pthread 库
  • 美颜SDK集成指南:为应用添加视频美颜功能
  • Kubernetes(K8s)从入门到精通系列之十八:使用 Operator Lifecycle Manager(OLM) 安装operator
  • 设计模式之桥梁模式
  • 系统日志记录注解方式动态记录
  • 【psychopy】【脑与认知科学】认知过程中的面孔识别加工
  • [SpringCloud] Nacos 简介
  • 重要环节不可忽视,CSS性能优化引领用户体验!
  • ubuntu执行普通用户或root用户执行apt-get update时报错Couldn‘t create temporary file /tmp/...
  • 苹果cms模板MXone V10.6魔改版网站源码短视大气海报样式
  • FOC系列(二)----继续学习DRV8301芯片
  • 机器学习之查准率、查全率与F1
  • 虎去兔来(C++)
  • Bootstrap的咖啡网站实例代码阅读笔记
  • 蓝桥杯每日一题2023.10.25
  • VR结合|山海鲸虚拟展厅解决方案
  • bitlocker 加密锁定的固态硬盘,更换到别的电脑上,怎么把原密钥写进新电脑TPM芯片内,开启无需手动填密钥