Python 利用filter函数求素数
Posted 哒哒哒大大诚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 利用filter函数求素数相关的知识,希望对你有一定的参考价值。
首先从2开始自然数序列
2,3,4,5,6,7,8,9,10,11,12,13,14……
剔除2和2 的倍数,奇数列
3,5,7,9,11,13,15,17,19……
剔除3的倍数
5,7,11,13,17,19
剔除5的倍数,以此类推
#创建一个奇数序列
def jishu():
n=1
while True:
n=n+2
yield n #迭代器Iterator,惰性序列
#创建一个过滤函数
def guolv(first):
return lambda x:x % first>0
#定义一个生成器返回素数
def sushu():
yield 2
it=jishu()#奇数序列
while True:
first=next(it)
yield first
it=filter(guolv(first),it)#过滤后得到新的迭代器
for n in sushu():
if n<100:
print(n)
else:
break
以上是关于Python 利用filter函数求素数的主要内容,如果未能解决你的问题,请参考以下文章