別の for ループ内の for-else ループに関していくつか質問があります。以下に例を示します。
primelist = []
for p in range (2, x+1):
print 'in first for'
raw_input()
for i in range(2, p):
print 'in second for'
if p%i == 0:
print 'in if'
raw_input()
break
else:
print 'in else'
raw_input()
primelist = primelist + [p]
return primelist
ご覧のとおり、これは素数を決定し、それらを後で取得できるようにリストに格納するためのものです。したがって、私の問題は最初の for ループにあります。プログラムを実行すると、最初の FOR ループ、ELSE、最初の FOR ループ、2 番目の FOR ループなどのように入ります。最初に ELSE にスキップするのはなぜですか? また、1000番目の数字を尋ねると、次のようになります:7919
for i in range(2, p)
と 7907 で
for i in range(2, p/2).
何故ですか?これで私を助けてくれることを願っていますが、素数アルゴリズムを実装するための他の方法を教えないでください!