[問題] list的remove
大家好,我在寫計算 m~n 中有多少質數的程式
附上程式碼:
import math
def generatePrime(m,n):
allNumber = range(m,n+1)
primeTable = (2,3,5,7,11,13,17,19,23,29)
index = 0
while index<len(allNumber):
tempSqrt = math.sqrt(allNumber[index])
for eachPrime in primeTable:
if tempSqrt < eachPrime:
break
if (allNumber[index] != eachPrime) and (allNumber[index] %
eachPrime == 0):
allNumber.remove(allNumber[index])
break
index = index + 1
return allNumber
我是想先利用一個質數表來檢驗,如果這個數不再質數表上,但是對質數取餘數後為零
則代表他不是質數,那就把他從 allNumber 中剔除
但是我這樣寫,只能把 2 的倍數剔出耶…
檢查了幾次應該沒有問題才對阿QQ
所以想上來請教各位高手,是哪裡出錯了呢
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.201
推
10/20 10:57, , 1F
10/20 10:57, 1F
→
10/20 10:58, , 2F
10/20 10:58, 2F
→
10/20 11:23, , 3F
10/20 11:23, 3F
→
10/20 11:23, , 4F
10/20 11:23, 4F
的確被猜中了,我把
allNumber.remove(allNumber[index])
改成
allNumber[index] = 0
後
除了質數其他都變 0 了 ..
這樣我到底該怎麼剔除這些元素呢QQ
※ 編輯: kusoayan 來自: 140.112.4.201 (10/20 11:29)
推
10/20 11:41, , 5F
10/20 11:41, 5F
推
10/20 11:42, , 6F
10/20 11:42, 6F
→
10/20 11:43, , 7F
10/20 11:43, 7F
推
10/20 11:47, , 8F
10/20 11:47, 8F
→
10/20 20:10, , 9F
10/20 20:10, 9F
→
10/20 22:02, , 10F
10/20 22:02, 10F
→
10/20 22:02, , 11F
10/20 22:02, 11F
Python 近期熱門文章
PTT數位生活區 即時熱門文章