这是我的埃拉托色尼筛法,用于查找最大为 n 的素数。我觉得它应该可以工作,但我得到一个错误,我真的不明白为什么:
mylist.remove(i)
ValueError: list.remove(x): x not in list
为什么会提到 x?
这是代码:
def number_list(n):
mylist = []
for i in range(2,n+1):
mylist.append(i)
return mylist
def sieve():
n = eval(input("What is the maximum limit? "))
mylist = number_list(n)
primes = []
for i in mylist:
p = mylist.pop(0)
primes.append(p)
if i % p == 0:
mylist.remove(i)
return primes