首先从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
时间: 2024-12-28 18:27:50