これは、倍数を削除し、倍数の空のリストにそれらを追加する、素数の単純なエラトステネスふるいです。私の質問は、両方のループの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
?を使用するのかということです。