时间:2021-05-22
本文为大家分享了多种方法求质数python实现代码,供大家参考,具体内容如下
题目要求是求所有小于n的质数的个数。
求质数方法1:
穷举法:
根据定义循环判断该数除以比他小的每个自然数(大于1),如果有能被他整除的就不是质数:
求质数方法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)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
筛选法介绍:筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发
本文实例讲述了Java求质数的几种常用算法。分享给大家供大家参考,具体如下:1、根据质数的定义求质数定义:只能被1或者自身整除的自然数(不包括1),称为质数。利
何为质数:只能被1和自身整除的数;方法:利用js中求模,看是否有余数.--->3%2=1;5%2=3.........代码如下:functiontest(n){
本文研究的主要是Python编程求质数实例,选取了几个数进行了测试,具体如下。定义:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数
本文实例讲述了Python中for循环控制语句用法。分享给大家供大家参考。具体分析如下:第一个:求50-100之间的质数importmathforiinrang