我試圖解決一個問題,我必須使用 for 回圈來解決一個數字是否為素數。似乎只有將數字除以 2 以確定它是否為素數時才會出現。如果它可以被 3 整除,我的代碼不會被接收。
這是我的代碼:
def isPrime(num):
for i in range (2,num):
if (num%i) !=0:
return True
else:
return False
isPrime(15)
我知道 15 不是質數,但它正在回傳True而不是False. 任何人都可以幫忙嗎?謝謝
uj5u.com熱心網友回復:
OP 的演算法總是在第一次迭代時退出。
相反,回圈較少,只有在找到除數時才退出回圈。還要考慮小于 2 的值。
def isPrime(num):
for i in range [2,isqrt(num)]:
if (num%i == 0) return False
if (num < 2) return False
return True
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/431627.html
下一篇:將數字增加或減少“x”百分比
