代码:
def odds():
i = 3
while True:
yield i
i = i + 2
class PrimeFilter(object):
def __init__(self, p):
self.p = p
self.curr = p
def __call__(self, x):
while x > self.curr:
self.curr += self.p
return self.curr != x
def SoE():
yield 2
it = odds()
while True:
p = next(it)
yield p
it = filter(PrimeFilter(p), it)
print("埃拉托色尼质数筛选法筛选100以内的所有质数")
x = slice(SoE(), 100)
print(x)
输出:
埃拉托色尼质数筛选法筛选100以内的所有质数
slice(<generator object SoE at 0x00000268E7EF8930>, 100, None)
哪错了?