1. 程式人生 > >使用Python求素數

使用Python求素數

#素數,只能被1和它自身整除的數

n = int(input("輸入整數:")

if n<2:

    print(n, "不是素數")

for i in range(2,n):

    if n%i == 0:

        print("這個數不是素數")

        break

    else:

        print("這個數是素數")

以上程式在進行判斷時存在一個邏輯錯誤, 當 n%i == 0 不成立, 且迴圈沒有結束時, 也會執行else下面的列印, 

比如n = 9, 當i=2時, if條件不成立, 就執行else下面的語句, 打印出這個數是素數, 但是迴圈還沒有結束, 在i= 3時, if條件成立, 即9不是素數, 所以這個程式就不應該打印出"這個數是素數",

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

以下程式是我從新寫的:

prime = int(input("判斷素數:"))
if prime==1:
    print('1不是素數')
for i in range(2,prime):
    if prime%i==0:
        print(prime,'不是素數')
        break
    if i==(prime-1):
        print(prime,'是素數')

歡迎大家批評指正