204. 计数质数

Problem: 204. 计数质数

文章目录

  • 思路
  • 解题方法
  • 复杂度
  • Code

思路

这个问题的关键是找出小于n的所有质数。质数是只有两个正因数(1和它自身)的自然数,且必须大于1。

解题方法

我们可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)来解决这个问题。这个算法的基本思想是从2开始,将每个质数的各个倍数,标记为合数。一个合数总是可以表示为质数的倍数,所以,如果我们在发现一个新的质数时,将其未来可能的倍数都标记为合数,那么到最后剩下的就是质数。

复杂度

时间复杂度:

O ( n log ⁡ log ⁡ n ) O(n\log\log n) O(nloglogn),这是因为我们需要对每个数进行筛选,筛选的过程中,每个数会被其所有的质数因子筛选到。

空间复杂度:

O ( n ) O(n) O(n),我们需要一个长度为n的布尔数组来记录每个数是否被筛选过。

Code

class Solution {public static int countPrimes(int n) {return ehrlich2(n - 1);}public static int ehrlich2(int n) {if(n <= 1) {return 0;}boolean[] vis = new boolean[n + 1];int cnt = (n + 1) / 2;for(int i = 3; i * i <= n; i += 2) {if(!vis[i]) {for(int j = i * i; j <= n; j += 2 * i) {if(!vis[j]) {vis[j] = true;cnt--;}}}}return cnt;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【设计模式】JAVA Design Patterns——Abstract-document

&#x1f50d; 目的 使用动态属性&#xff0c;并在保持类型安全的同时实现非类型化语言的灵活性。 &#x1f50d; 解释 抽象文档模式使您能够处理其他非静态属性。 此模式使用特征的概念来实现类型安全&#xff0c;并将不同类的属性分离为一组接口 真实世界例子 考虑由多个部…

docker学习笔记(五):harbor仓库搭建与简单应用

harbor私有仓库 简介 Docker容器应用的开发和运行离不开可靠的镜像管理&#xff0c;虽然Docker官方也提供了公共的镜像仓库&#xff0c;但是从安全和效率等方面考虑&#xff0c;部署私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管…

组件目录存放问题

目录 一、思考引入 二、组件分类 三、组件分类的目的 一、思考引入 .vue文件本质无区别&#xff0c;而路由相关的组件&#xff0c;为什么要放在views目录呢&#xff1f; 二、组件分类 .vue文件分2类&#xff1a;页面组件和复用组件。注意&#xff1a;都是.vue文件&#xff…

【八股系列】React中props和state的区别是什么?

React中props和state的区别是&#xff1a; props是用来从父组件向子组件进行传递数据的&#xff0c;在子组件中可以用props来接收到父组件传递过来的参数。props是不可变的&#xff0c;用户不能在子组件中修改props的值&#xff0c;因为从父组件中传递过来的值被认为是不可变数…

HJ19 简单错误记录

问题概要 开发一个简单错误记录功能小模块&#xff0c;能够记录出错的代码所在的文件名称和行号。 对应牛客网题目HJ19 简单错误记录 思路分析 其实这个题目并没有用到特别复杂的技巧&#xff0c;重点是对字符串的处理&#xff0c;以及模拟整个记录的过程。 代码实现 #include…

漫画对话 ai翻译

復讐の教科書ーー81 81-1 いい加減吐け&#xff01;&#xff01;冴木&#xff01;&#xff01; 快说吧&#xff01;&#xff01;冴木&#xff01;&#xff01; お前が一連の事件の犯人なんだろ&#xff01;&#xff1f; 你就是连续事件的犯人吧&#xff01;&#xff1f; だか…

400G QSFP-DD光模块的分类及应用领域

400G QSFP-DD光模块是一种光通信设备&#xff0c;具有高带宽和高密度的特点&#xff0c;适用于各种数据中心和通信网络。本文将介绍400G QSFP-DD光模块的分类和应用领域。 400G QSFP-DD光模块的分类 400G QSFP-DD光模块可以根据其传输速率、光纤类型和工作距离等因素进行分类。…

SpringBoot的启动器——Spring-boot-starter介绍和常见启动器

1、Starter是什么 Spring Boot通过将我们常用的功能场景抽取出来&#xff0c;做成的一系列的启动器&#xff0c;我们只需要在项目中引入这些starter&#xff0c;相关的所有依赖就会全部被导入进来&#xff0c;并且我们可以抛弃繁杂的配置&#xff0c;例如&#xff1a; ​ spri…

探索Java的未来:创新与演进的旅程

探索Java的未来&#xff1a;创新与演进的旅程 Java&#xff0c;这个被誉为“一次编写&#xff0c;到处运行”的编程语言&#xff0c;自1995年诞生以来&#xff0c;一直以其跨平台性、面向对象和强大的安全性而著称。随着技术的不断进步和市场的不断变化&#xff0c;Java也在不…

游戏工作室如何利用惯性动作捕捉技术制作动画?

随着动捕设备不断进步和游戏行业的发展&#xff0c;惯性动作捕捉技术在游戏开发领域逐渐普及。惯性动作捕捉技术&#xff0c;可以精准捕捉现实世界中的真人动作&#xff0c;并将其精准应用于虚拟角色上&#xff0c;使游戏中的角色动作可以呈现出更写实、逼真和沉浸感&#xff0…

##10 卷积神经网络(CNN):深度学习的视觉之眼

文章目录 前言1. CNN的诞生与发展2. CNN的核心概念3. 在PyTorch中构建CNN4. CNN的训练过程5. 应用:使用CNN进行图像分类5. 应用:使用CNN进行时序数据预测代码实例7. 总结与展望前言 在深度学习的领域中,卷积神经网络(CNN)已经成为视觉识别任务的核心技术。自从AlexNet在2…

光伏设备制造5G智能工厂数字孪生可视化平台,推进行业数字化转型

光伏设备制造5G智能工厂数字孪生可视化平台&#xff0c;推进行业数字化转型。光伏设备制造5G智能工厂数字孪生可视化平台是光伏行业数字化转型的重要一环。通过数字孪生平台&#xff0c;光伏设备制造企业可以实现对生产过程的全面监控和智能管理&#xff0c;提高生产效率&#…

ESP32-C3模组上跑通MQTT(4)

接前一篇文章&#xff1a;ESP32-C3模组上跑通MQTT&#xff08;3&#xff09; 本文内容参考&#xff1a; 《ESP32-C3 物联网工程开发实战》 特此致谢&#xff01; 上一回讲到了MQTT的消息格式&#xff0c;讲解了MQTT控制报文中的固定头中的控制报文的类型、消息质量等级和标志…

基于51单片机的智能导盲手杖—超声波测距

基于51单片机的智能导盲手杖 &#xff08;仿真&#xff0b;程序原理图&#xff0b;PCB设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.显示前方障碍物距离。 2.实时测量距离&#xff0c;并通过蜂鸣器提醒距离过短&#xff0c;蜂鸣器蜂鸣发出预警。 3.可以通过按键调…

吴恩达机器学习笔记:第 9 周-17大规模机器学习(Large Scale Machine Learning)17.1-17.2

目录 第 9 周 17、 大规模机器学习(Large Scale Machine Learning)17.1 大型数据集的学习17.2 随机梯度下降法 第 9 周 17、 大规模机器学习(Large Scale Machine Learning) 17.1 大型数据集的学习 如果我们有一个低方差的模型&#xff0c;增加数据集的规模可以帮助你获得更好…

ubantu安装rabbbitmq

ubantu安装rabbbitmq 安装Erlang1、在linux下直接安装2、上传Erlang文件后解压 安装rabbitmq开启web管理接口创建用户及修改guest密码&#xff0c;删除guest默认账号 安装Erlang 1、在linux下直接安装 #运行以下命令直接安装&#xff1a; sudo apt-get install erlang#可运行…

【代码随想录】回溯问题之组合

前言 更详细的在大佬的代码随想录 (programmercarl.com) 本系列仅是简洁版笔记&#xff0c;为了之后方便观看 解决的类型问题 组合无序&#xff0c;排列有序 组合切割子集排列&#xff08;强调元素的顺序&#xff09;棋牌问题&#xff08;n皇后&#xff0c;数独&#xff0…

postgres 查看全部数据库

在 PostgreSQL 中&#xff0c;要查看所有的数据库&#xff0c;你可以使用 psql 命令行工具并执行一个特定的命令。以下是查看所有数据库的步骤&#xff1a; 打开终端&#xff1a; 首先&#xff0c;打开你的终端或命令行界面。 连接到 PostgreSQL&#xff1a; 使用 psql 连接到…

jsbsim 调 pid 记录

1.先调俯仰角 pitch 俯仰角不能超过 xml 文件里定义的爬升角 高度不对&#xff0c;调 pitch 角的 pid&#xff0c;俯仰角 理论上调pid&#xff1a; 响应快了&#xff0c;P调小&#xff1b;响应慢了&#xff0c;P调大 I消除稳态误差&#xff0c;I调大 D防止震荡&#xff0c;震…

AWS Lambda 第一个例子Hello (JAVA)

什么是Serverless&#xff08;无服务器计算&#xff09; 行业通常所说的Serverless&#xff0c;主要是指“无服务器计算&#xff08;Serverless Computing&#xff09;”。无服务器计算&#xff0c;并不是真的不需要服务器&#xff0c;而是说&#xff0c;对于用户&#xff0c;…