这是一个简单的素数 Eratosthenes 筛子,它删除倍数并将它们附加到空的倍数列表中。我的问题是,如果我在两个循环中都使用n
而不是,答案是一样的。n+1
for
def eratosthenes(n):
multiples = []
for i in xrange(2, n+1):
if i not in multiples:
print i
for j in xrange(i*i, n+1, i):
multiples.append(j)
返回输出,如
eratosthenes(10)
2
3
5
7
而如果我在两个循环中替换n+1
为n
输出仍然是相同的:
def eratosthenes(n):
multiples = []
for i in xrange(2, n):
if i not in multiples:
print i
for j in xrange(i*i, n, i):
multiples.append(j)
返回与上述函数相同的输出...
eratosthenes(10)
2
3
5
7
我的问题是为什么我们使用n+1
而不是n
?