【发布时间】:2013-06-27 21:51:34
【问题描述】:
我正在尝试编写一个 python 函数来返回小于给定值的素数和所有素数的值。我需要使用埃拉托色尼筛算法。我相信我在函数中遗漏了一些东西 - 例如,当我想找到 100 以下的素数时。我得到的只是 2、3、5、7。我知道如果我不使用“平方根” ,我可以得到我需要的所有素数;但我被告知我需要在那里包括平方根。有人可以看看我的代码,让我知道我缺少什么吗?感谢您的宝贵时间。
def p(n):
is_p=[False]*2 + [True]*(n-1)
for i in range(2, int(n**0.5)):
if is_p[i]:
yield i
for j in range(i*i, n, i):
is_p[j] = False
【问题讨论】:
标签: python sieve-of-eratosthenes