本文为大家分享了多种方法求质数python实现代码,供大家参考,具体内容如下

题目要求是求所有小于n的质数的个数。

求质数方法1:

穷举法:

根据定义循环判断该数除以比他小的每个自然数(大于1),如果有能被他整除的就不是质数:

def countPrimes1(self, n):

"""

:type n: int

:rtype: int

"""

if n<=2:

return 0

else:

res=[]

for i in range(2,n):

flag=0 # 质数标志,=0表示质数

for j in range(2,i):

if i%j ==0:

flag=1

if flag==0:

res.append(i)

return len(res)

求质数方法2:

利用定理:如果一个数是合数,那么它的最小质因数肯定小于等于它的平方根。所以判断一个数是否是质数,只需判断它是否能被小于它开根后的所有数整除。这样做的运算会少很多。

def countPrimes2(self, n):

if n<=2:

return 0

else:

res=[]

for i in range(2, n):

flag=0

for j in range(2, int(math.sqrt(i))+1):

if i % j == 0:

flag = 1

if flag == 0:

res.append(i)

return len(res)

求质数方法3:

利用定理:如果一个数是合数,那么它的最小质因数肯定小于等于它的平方根。我们可以发现只要尝试小于等于平方根的所有数即可。列举从 3 到根号x的所有数,还是有些浪费。比如要判断101是否质数,101的根号取整后是10,需要尝试的数是1到10。但是可以发现,对9的尝试是多余的。不能被3整除,必然不能被9整除……顺着这个思路走下去,其实,只要尝试小于根号x的质数即可。而这些质数,恰好前面已经算出来了,已经存在res中了。

def countPrimes3(self, n):

if n <= 2:

return 0

else:

res = []

for i in range(2, n):

flag = 0

for j in res:

if i % j == 0:

flag = 1

if flag == 0:

res.append(i)

return len(res)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本网站。

python求素数积_python求质数的3种方法相关推荐

  1. python怎么复制字符串_python字符串复制的几种方法

    >>> list1 = [1,2] >>> id(list1) 50081032 >>> list2 = list1.copy() >> ...

  2. python安装gdal包_python安装gdal的两种方法

    1.不用手动下载文件,直接执行以下命令即可 conda install gdal 2.首先,下载gdal的whl文件  链接, 官网下载比较慢,GDAL-2.2.4-cp27-cp27m-win_am ...

  3. python包导入方式_python导包的几种方法(自定义包的生成以及导入详解)

    python 导入数据包的几种方法 1.直接导入整个数据包:improt 数据包 2.导入数据包中的某一个函数: from 数据包 improt 函数(当函数这一项为 * 时为导入整个数据包) 3. ...

  4. python字符串成熟编码_python字符串转公式两种方法获取网页编码python版

    在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...

  5. python如何删除代码_Python列表删除的三种方法代码分享

    1.使用del语句删除元素 >>> i1 = ["a",'b','c','d'] >>> del i1[0] >>> prin ...

  6. python里的拼接_Python拼接字符串的7种方法总结

    前言 忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串.相信不少同学会有同感. 在Python中,我们经常会遇到字符串的拼接问题,几乎任何一种编程语言,都把字符串列为最基 ...

  7. python解复杂方程_Python 解方程的三种方法

    # 首发于我的博客 The North. 新年第一篇,搞起. 这回写一个好久之前想做,一直搁着没做的东西-- Python 解方程(其实是放假回家,趁着家里电脑重装 LOL 的时间过来写一篇). 咱这 ...

  8. python 画图 线标注_Python画图的这几种方法,你学会了吗

    点击上方"科技学堂"订阅最新科技教育信息 循环是计算机程序中最基础的控制方法,在Python学习中,熟练使用循环语句是非常重要的."Python轻松学"课程我们 ...

  9. python 发邮件 抄送_Python发送email的3种方法

    python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送 ...

最新文章

  1. seo说_百度指数看世间沉浮_如何快速排名-互点快速排名_网站SEO关键词排名优化提升技巧...
  2. 单点登录系统实现基于SpringBoot
  3. How OPA addFrame is called
  4. 带你梳理Roach全量恢复的整体流程
  5. imageNamed和dataWithContentsOfFile的区别(1)
  6. 【RLchina第五讲】Control as Inference
  7. 各种插件、扩展、工具网站
  8. 5G加速实现沉浸式体验
  9. 荣耀智慧屏x1和小米4a哪个好?
  10. 欧拉品牌升级:坚持女性品牌是最正确的决策
  11. php转调页面,如何转调
  12. 诺顿误杀系统文件 导致百万台电脑处于崩溃边缘
  13. oracle导出数据视频教程,Oracle数据导入导出基本操作示例
  14. python 图片/语音文件实现base64的转换与解析
  15. 【Fiddler介绍】
  16. 什么是你的核心竞争力之六善用你的弱点
  17. (转)归江:投资,心平气和结硕果
  18. 铨顺宏RFID:服饰行业和店铺管理与解决方法是如何利用RFID技术
  19. Kubernetes 学习总结(28)—— Kubernetes 常见问题总结
  20. html block属性,css display block属性的意思、作用和效果

热门文章

  1. 机器学习十大算法之贝叶斯算法
  2. android TV端如何读取微信网页版二维码显示生成一张图片
  3. 考研:研究生考试(五天学完)之《线性代数与空间解析几何》研究生学霸重点知识点总结之第五课线性方程组
  4. C/C++常用函数汇总
  5. 沈阳计算机ps自锁按键开关,按键双排自锁开关PS-2D07L,PS-22E07
  6. 自动驾驶 Apollo 源码分析系列,系统监控篇(二):Monitor模块如何监控硬件
  7. 网络系统设计过程中,物理网络设计阶段的任务是(70)。【答案】A
  8. 高清智能安防系统旅游景区解决方案分析
  9. Android中使用sqlite数据库实现对象的存储
  10. XP的点滴(C语言)