from itertools import count
def _not_divisible(n):
return lambda x: x % n > 0
# 获取当前序列的第一个元素,然后删除后面序列该元素倍数的数,然后构造新序列。
def primes():
yield 2 # 第1个素数是2
it = count(3, 2) # 3开始的奇数
while True:
n = next(it)
yield n
it = filter(_not_divisible(n), it)
from itertools import takewhile
# 输出指定范围素数
for i in takewhile(lambda x: x < 200, primes()):
print(i, end = ' ')