0
我有這個類可以從主要方法中調用,該方法通過實現Erathostenes篩來查找列表中的所有素數。然而在該行python:列表分配索引超出範圍[erathostenes篩選]
nums[j] = 0
我收到錯誤上面提到的:
列表分配索引超出範圍
這是我的代碼:
class Prime:
def is_prime(self, num):
chk = False
for i in range(2,num):
if num % i == 0:
chk = True
return chk
def sieve_of_erathos(self, num):
nums = []
for i in range(2, num):
nums.append(i)
for i in range(2, num):
if i != 0:
for j in range(i+1, num):
if j % i == 0:
nums[j] = 0
primes = []
for i in range (2, num):
if nums[i] != 0:
primes.append(nums[i])
return primes
這是在範圍(i + 1,數量)j的問題:我猜 – tinySandy
你的'is_prime'不正確,它返回''真'爲'12',我認爲你chk默認必須是真的',你應該在循環中假'False'並在那之後使用'break' – Arman
@Arman然後布爾輸出由主函數處理,並且輸出相應地完成。在12的情況下,輸出是它不是素數。 – Logan