使用Python求素數
阿新 • • 發佈:2019-01-10
#素數,只能被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,'是素數')
歡迎大家批評指正