【发布时间】:2016-03-05 12:41:07
【问题描述】:
我正在编写一个与此链接中的任何人都不同的素数生成器
generator in Python generating prime numbers
这是我的代码
def sequence():
i = 1
while True:
i += 2
yield i
def prime_generator(n):
i = 2
it = sequence()
while i < n:
it= filter(lambda x: x % i, it)
i = next(it)
yield i
当我运行类似的东西时
for i in prime_generator(50):
print(i)
它从来不会像我那样倾倒 15、33 之类的东西。总之,它给了我 2 和所有奇数。这里出了什么问题?
【问题讨论】:
-
嗯,15 不是素数。也不是 33 岁。
-
另一方面,所有奇数都会出现。 有趣。
标签: python python-3.x