簡體   English   中英

Python:查找素數算法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM