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

LeetCode|Day21|204. 计数质数|Python刷题笔记

LeetCode|Day21|204. 计数质数|Python刷题笔记

🗓️ 本文属于【LeetCode 简单题百日计划】系列
👉 点击查看系列总目录 >>


📌 题目简介

题号:204. 计数质数
难度:简单
题目链接:点击跳转


🧾 题目描述(简要)

统计所有小于非负整数 n 的质数的数量。

示例:

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

💡 解法:埃拉托色尼筛法(Sieve of Eratosthenes)

class Solution:def countPrimes(self, n: int) -> int:if n < 2:return 0is_prime = [True] * nis_prime[0] = is_prime[1] = Falsefor i in range(2, int(n ** 0.5) + 1):if is_prime[i]:for j in range(i * i, n, i):is_prime[j] = Falsereturn sum(is_prime)

🧠 我的理解

  • 从 2 开始筛选,每次将其倍数标记为非质数;
  • 用布尔数组记录每个数是否为质数;
  • 外层从 2~√n,内层从 i² 开始标记;
  • 时间复杂度 O(n log log n),非常高效的经典算法。

📌 基础语法复习:

  • int(n ** 0.5):取平方根;
  • sum(is_prime):统计布尔列表中 True 的个数;
  • 嵌套循环 + 素数筛选是算法基础知识。

📌 返回总目录:点我回目录

http://www.xdnf.cn/news/15925.html

相关文章:

  • DelayQueue延迟队列的使用
  • 分布式定时任务系列13:死循环是任务触发的银弹?
  • Jmeter如何做接口测试?
  • 基于 STM32 的数字闹钟系统 Proteus 仿真设计与实现
  • JavaWeb笔记四
  • 【VASP】VASP 机器学习力场(MLFF)实战
  • 超越基于角色的手术领域建模:手术室中的可泛化再识别|文献速递-医学影像算法文献分享
  • 神经网络——非线性激活
  • 深入解析 SymPy 中的符号计算:导数与变量替换的实践指南
  • 【设计模式】观察者模式 (发布-订阅模式,模型-视图模式,源-监听器模式,从属者模式)
  • OpenEuler 22.03 系统上安装配置gitlab runner
  • 基于Python的多传感器融合的障碍物检测与避障演示
  • Jetpack ViewModel LiveData:现代Android架构组件的核心力量
  • 【Vue进阶学习笔记】实现图片懒加载
  • k8s的calico无法启动报错解决
  • Docker实践:使用Docker部署blog轻量级博客系统
  • 【Java + Vue 实现图片上传后 导出图片及Excel 并压缩为zip压缩包】
  • 【跨国数仓迁移最佳实践2】MaxCompute SQL执行引擎对复杂类型处理全面重构,保障客户从BigQuery平滑迁移
  • IDEA 同时修改某个区域内所有相同变量名
  • 深入解析IP协议:组成、地址管理与路由选择
  • Freemarker实现下载word可能遇到的问题
  • docker--挂载
  • 深入解析:如何在Kafka中配置Source和Sink连接器构建高效数据管道
  • 【Linux指南】Linux系统 -权限全面解析
  • 万界星空科技锂电池MES解决方案
  • 移星科技 modbus-tcp 转 modbus-Rtu模块
  • CMakeLists.txt 中一些最常见和核心的命令
  • AG32 cpld部分bin的烧录
  • 20250721
  • .NET依赖注入IOC你了解吗?