╮ 潜心 ╰ edited 6 年,11 月前
题意:打出一个范围内的所有素数
利用filter实现如下
#构造从3开始的奇数序列
def _odd_iter():
n = 1
while True:
n += 2
yield n
#定义筛选函数
def _not_divisible(n):
return lambda x: x%n > 0
#定义一个生成器,不断返回下一个素数
def primes():
yield 2
it = _odd_iter()
while True:
n = next(it)
yield n
it = filter(_not_divisible(n), it)
for n in primes():
if n > 200:
break
if n > 100:
print(n, end = ' ')