要識別的函式是否為 n素數。
def test_prime(n):
if n == 1:
return False
elif n==2:
return True
else:
for e in range(2,n): # iteration from 2 to n
if e % 2 == 0:
return False
return True
為什么這里 3 不是質數?
print(test_prime(3))
uj5u.com熱心網友回復:
那是因為你實作的邏輯是錯誤的。正如已經指出的那樣,您的代碼當前正在檢查您的輸入數字是偶數還是奇數。要檢查數字是否為素數,您可以執行以下操作:
def test_prime(n):
if n == 1:
return False
elif n==2:
return True
else:
for e in range(2,n): # iteration from 2 to n
if n % e == 0:
return False
return True
該else條件將檢查輸入數字除以每個數字后的余數是否range為0。如果它是0,那么它不是質數。此外,您可以運行從 0 到 half of 的回圈n,這比建議的效率更高。
uj5u.com熱心網友回復:
數字 3 不是素數,因為代碼中的邏輯從 range(2,n) 開始,回傳數字 2 和 2%2 == 0,即 False。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436065.html
