700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python判断一个正整数是否为素数的算法

Python判断一个正整数是否为素数的算法

时间:2019-07-14 14:24:20

相关推荐

Python判断一个正整数是否为素数的算法

先定义一个有序列表,作为素数池,这样多次操作的时候可以直接用里面的素数作为取模的除数,以避免用合数作冗余的计算:

primePool = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,79,83,89,97,101,103,107,109,113]

定义素数判断函数

def isPrime(num):if num in primePool:return Truesq = math.sqrt(num)p=2for m in primePool: #先从素数池中找p = mif math.fmod(num,m)==0:print(Divider:,m)return Falseif p > sq:return Truep = p+2while p<=sq:if isPrime(p):primePool.append(p)#素数池维护if math.fmod(num,p)==0:print(Divider:,p)return Falsep = p+2 #以2为步长,避免无用的偶数判断#primePool.append(num)\如果此时的 num 是素数,暂时不将其放入有序素数池中,因为还要判断并添加从p到num之间的所有素数。对于本函数而言是个较大的计算量。\ eturn True

运行示例:

isPrime(17947

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。