[英]Python: Find Prime Number Algorithm
最近,我的老師對我的編碼技能提出了挑戰,因為他看到我已經對他的教學有所了解。 問題如下。
創建一個程序,提示用戶輸入2個數字。 然后,程序將顯示兩個給定數字之間的所有素數,包括給定數字。 注意:您不能假定第一個輸入大於第二個輸入。
因此,我提出了這個問題,並構建了一個相當簡單的算法,並對其進行了運行。 我今天打開了它,以查明由於某些原因我的輸出有時不正確,例如,當您輸入8和29時我得到27。我正在尋找關於我的邏輯有什么問題的提示 ,因為我無法終生我在做什么錯。 我不想直接解決問題,因為我想從中學到很多東西,並盡可能自己做。
numbers = [int(input("First Number")), int(input("Second Number"))]
numbers.sort()
numList = []
#Removing Even Numbers
for num in range(numbers[0],numbers[1] + 1):
if num % 2 != 0:
numList.append(num)
#Checking For Prime Numbers
for currNum in numList:
#Set Start number to divide
i = 2
while i < currNum:
#Checks if the currNum can be divisble by i and is a whole number
if currNum % i != 0:
i = i + 1
else :
numList.remove(currNum)
break
print(numList)
從我從測試中學到的知識來看,即使在numList數組中,似乎在我的for循環或while循環中也從未檢查過27。
切勿從要迭代的列表中刪除項目。 而是創建一個新列表:
numbers = [int(input("First Number")), int(input("Second Number"))]
numbers.sort()
primes = []
for num in range(numbers[0], numbers[1] + 1):
#Set Start number to divide
i = 2
while i < num:
#Checks if the currNum can be divisble by i and is a whole number
if num % i == 0:
break
i += 1
else:
primes.append(num)
print(primes)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.