今天继续刷LeetCode,第204题,求给定的数以下,包含多少个素数。

分析:
素数的定义:一个大于1的自然数,除了1和它自身以外,不能被其他自然数整除的数就是质数,也叫作素数。所以1不是质数。
方法一:通过遍历给定数以下的每一个数,并同时判断该数是否为素数,是的话就累加1,否则继续判断,这个方法虽然可行,但是会出现时间超时的问题,于是采用筛选法。
方法二:通过筛选的方式,如果n是素数,那么该数的所有倍数都不是素数,全部删除,知道循环到n的开方。

问题:
1、超时出现时,如何解决;
2、素数的判断;
3、以空间换取时间;

附上超时代码1:

class Solution {
public:int countPrimes(int n) {int count=0;if(n==1)return 0;while(n--&&n>1){if(isPrime(n))count++;}return count;}bool isPrime(int n){for(int i=2;i<=n/2;i++){if(n%i==0)return false;}return true;}
};

附上通过代码2:

class Solution {
public:int countPrimes(int n) {vector<bool> state(n,true);if(n==0)return 0;state[0]=false;state[1]=false;for(int i=2;i<sqrt(n);i++){if(state[i]){for(int j=i*i;j<n;j+=i)state[j]=false;}}return count(state.begin(),state.end(),true);}
};

python实现:
注意:
(1)设置n为数组的方式;
(2)乘方的使用;

附上python代码:

class Solution:def countPrimes(self, n: int) -> int:if n<3:return 0;state=[1]*nstate[0]=state[1]=0for i in range(2,int(n**0.5)+1):if state[i]==1:for j in range(i*i,n,i):state[j]=0return sum(state)

LeetCode探索之旅(58)-204质素统计相关推荐

  1. python程序判断梅森素数_梅森素数的探索之旅

    2009年5月22日,对于很多人来说并不是什么特别的日志,不过数学界这边又传来了一个"喜讯":我们已经找到了第47个梅森素数,即$2^{42643801}-1$是一个素数!新的素数 ...

  2. Linux 探索之旅 | 第四部分第二课:SSH 连接,安全快捷

    -- 作者 谢恩铭 转载请注明出处 内容简介 第四部分第二课:SSH连接,安全快捷 第四部分第三课预告:文件传输,潇洒同步 SSH连接,安全快捷 上一课是 Linux探索之旅 | 第四部分第一课:压缩 ...

  3. 【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

    内容简单介绍 1.第二部分第五课:用户和权限,有权就任性 2.第二部分第六课预告:Nano,刚開始学习的人的文本编辑器 用户和权限.有权就任性 今天的标题也挺任性的啊,虽说小编是一个非常本分的人(真的 ...

  4. Linux 探索之旅 | 第三部分第五课:延时执行,唯慢不破

    -- 作者 谢恩铭 转载请注明出处 内容简介 第三部分第五课:延时执行,唯慢不破 第三部分第六课预告:第三部分测验题 延时执行,唯慢不破 上一课 Linux探索之旅 | 第三部分第四课:后台运行及合并 ...

  5. Web 探索之旅 | 第二部分第一课:客户端语言

    -- 作者 谢恩铭 转载请注明出处 Web探索之旅 | 第二部分 第二部分第一课:客户端语言 第二部分第二课:服务器语言 第二部分第三课:框架和内容管理系统 第二部分第四课:数据库 第二部分第五课:响 ...

  6. 美团外卖商家端视频探索之旅

    美团外卖商家端视频探索之旅 背景 美团外卖至今已迅猛发展了六年,随着外卖业务量级与日俱增,单一的文字和图片已无法满足商家的需求,商家迫切需要更丰富的商品描述手段吸引用户,增加流量,进而提高下单转化率和 ...

  7. Linux 探索之旅 | 第五部分第五课:循环往复,Shell 开路

    -- 作者 谢恩铭 转载请注明出处 内容简介 前言 while 循环 until 循环 for 循环 总结 第五部分第六课预告 1. 前言 上一课 Linux探索之旅 | 第五部分第四课:条件一出,S ...

  8. c语言 如何创建adt_C语言探索之旅 | 第二部分第六课:创建你自己的变量类型

    内容简介 前言 定义一个 struct 结构体的使用 结构体指针 union enum 总结 第二部分第七课预告 1. 前言 上一课是 C语言探索之旅 | 第二部分第五课:预处理 ,应该是比较轻松的. ...

  9. C++统计10亿以内所有的质素(素数)的实现算法(附完整源码)

    C++统计10亿以内所有的质素的实现算法 C++统计10亿以内所有的质素的实现算法完整源码(定义,实现,main函数测试) C++统计10亿以内所有的质素的实现算法完整源码(定义,实现,main函数测 ...

最新文章

  1. python使用说明书-InfluxDB——python使用手册
  2. win10中的ubuntu子系统忘记root密码如何修改
  3. Confluence 6 为发送邮件配置服务器
  4. OAuth 2.0——授权服务开发笔记(二)
  5. 墨天轮2022年新春发布会暨年度数据库颁奖盛典即将开启!
  6. [MSP430DriverLib-2]使用延时让LED闪烁
  7. python opencv高斯滤波_【OpenCV】基于Python的图像高斯平滑和椒盐噪声处理 | 学步园...
  8. JoyStick for android2.3 游戏手柄功能开发
  9. ArcGIS聚类分析
  10. 如何缩小jpg图片大小?jpg格式怎么压缩?
  11. office WPS同时安装,WPS卸载后,文档图标异常解决办法
  12. 对SendMessage与PostMessage的理解
  13. 赴日IT的昨日和今朝
  14. 有追求的品牌都应该去B站
  15. vba写的《志愿者排班表》
  16. vs code 语法_VS Code上的Java现在具有语法模式和SonarLint支持
  17. coreldraw2018最新版信息功能与特点大全附下载链接
  18. 学习数字电路-时序约束
  19. 量化私募投资百亿头部量化私募企业在招岗位:《量化研究员》21/22/23届,校招/秋招/社招都看年base40-100万+bonus
  20. jquery日历插件,可自定义日期内容

热门文章

  1. element 日期选择图标_element-ui日期组件DatePicker设置日期选择范围Picker Options
  2. 带备忘录的动态规划【leetcode931】
  3. python:statsmodels 一元线性回归分析
  4. 原生JavaScript小白入门001之HTML为<script>标签定义的6种属性
  5. CTF-实验吧-认真你就输了
  6. 【数据可视化】利用WordCloud制作词云
  7. 数字电路之时序逻辑电路
  8. Win7下安装Ubuntu16.04以及Ubuntu配置Android环境
  9. JAVA正则表达式(详细,转载内容)
  10. 同花顺_代码解析_五彩K线