编个埃拉托色尼质数筛选程序,结果输出的是……
查看原帖
编个埃拉托色尼质数筛选程序,结果输出的是……
1213524
C_plus_plus_12345楼主2024/6/14 23:34

代码:

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)

哪错了?

2024/6/14 23:34
加载中...