python求素数积_python求质数的3种方法
本文为大家分享了多种方法求质数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种方法相关推荐
- python怎么复制字符串_python字符串复制的几种方法
>>> list1 = [1,2] >>> id(list1) 50081032 >>> list2 = list1.copy() >> ...
- python安装gdal包_python安装gdal的两种方法
1.不用手动下载文件,直接执行以下命令即可 conda install gdal 2.首先,下载gdal的whl文件 链接, 官网下载比较慢,GDAL-2.2.4-cp27-cp27m-win_am ...
- python包导入方式_python导包的几种方法(自定义包的生成以及导入详解)
python 导入数据包的几种方法 1.直接导入整个数据包:improt 数据包 2.导入数据包中的某一个函数: from 数据包 improt 函数(当函数这一项为 * 时为导入整个数据包) 3. ...
- python字符串成熟编码_python字符串转公式两种方法获取网页编码python版
在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...
- python如何删除代码_Python列表删除的三种方法代码分享
1.使用del语句删除元素 >>> i1 = ["a",'b','c','d'] >>> del i1[0] >>> prin ...
- python里的拼接_Python拼接字符串的7种方法总结
前言 忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串.相信不少同学会有同感. 在Python中,我们经常会遇到字符串的拼接问题,几乎任何一种编程语言,都把字符串列为最基 ...
- python解复杂方程_Python 解方程的三种方法
# 首发于我的博客 The North. 新年第一篇,搞起. 这回写一个好久之前想做,一直搁着没做的东西-- Python 解方程(其实是放假回家,趁着家里电脑重装 LOL 的时间过来写一篇). 咱这 ...
- python 画图 线标注_Python画图的这几种方法,你学会了吗
点击上方"科技学堂"订阅最新科技教育信息 循环是计算机程序中最基础的控制方法,在Python学习中,熟练使用循环语句是非常重要的."Python轻松学"课程我们 ...
- python 发邮件 抄送_Python发送email的3种方法
python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送 ...
最新文章
- seo说_百度指数看世间沉浮_如何快速排名-互点快速排名_网站SEO关键词排名优化提升技巧...
- 单点登录系统实现基于SpringBoot
- How OPA addFrame is called
- 带你梳理Roach全量恢复的整体流程
- imageNamed和dataWithContentsOfFile的区别(1)
- 【RLchina第五讲】Control as Inference
- 各种插件、扩展、工具网站
- 5G加速实现沉浸式体验
- 荣耀智慧屏x1和小米4a哪个好?
- 欧拉品牌升级:坚持女性品牌是最正确的决策
- php转调页面,如何转调
- 诺顿误杀系统文件 导致百万台电脑处于崩溃边缘
- oracle导出数据视频教程,Oracle数据导入导出基本操作示例
- python 图片/语音文件实现base64的转换与解析
- 【Fiddler介绍】
- 什么是你的核心竞争力之六善用你的弱点
- (转)归江:投资,心平气和结硕果
- 铨顺宏RFID:服饰行业和店铺管理与解决方法是如何利用RFID技术
- Kubernetes 学习总结(28)—— Kubernetes 常见问题总结
- html block属性,css display block属性的意思、作用和效果
热门文章
- 机器学习十大算法之贝叶斯算法
- android TV端如何读取微信网页版二维码显示生成一张图片
- 考研:研究生考试(五天学完)之《线性代数与空间解析几何》研究生学霸重点知识点总结之第五课线性方程组
- C/C++常用函数汇总
- 沈阳计算机ps自锁按键开关,按键双排自锁开关PS-2D07L,PS-22E07
- 自动驾驶 Apollo 源码分析系列,系统监控篇(二):Monitor模块如何监控硬件
- 网络系统设计过程中,物理网络设计阶段的任务是(70)。【答案】A
- 高清智能安防系统旅游景区解决方案分析
- Android中使用sqlite数据库实现对象的存储
- XP的点滴(C语言)