私は単純なエラトステネスのふるいスクリプトを作成しようとしています.Pythonとコーディング全般を始めたばかりなので、今のところ効率について心配していません.
import math
primes = range(2,500)
upperLimit = math.ceil(math.sqrt(float(primes[-1])))
def sieve(numbers):
for item in range(0,int(upperLimit)):
n = numbers[item]
while n < upperLimit:
n += numbers[item]
print n
print numbers
numbers.remove(n)
sieve(primes)
print primes
これは、12行目のnumbers.remove(n)が存在しないことを私に伝え続けたので、何が起こっているのかを理解しようとするために、その上にprintステートメントを置きました。それは正常に動作し、本来あるべきものを最大 24 まで削除します。次に、2 を n に再度追加する代わりに、n を 6 に変更します。 .