3
我寫了一個函數來計算一個數是否爲素數,但嘗試它可能,它似乎無法給出正確的響應。它還打印正在遞增的n值。下面是函數的代碼(在Python,順便說一句):素數檢查功能故障
def isPrime(x):
for n in range(1, x):
print n
if x % n == 0:
return False
return True
如果我輸入
isPrime(17)
該函數返回
1
False
這是怎麼回事錯在這裏?
素數定義是錯誤的 – yosukesabai
只是一個側面說明:有*加載*的方式來優化質數檢查,但一個簡單的方法是:只檢查x的平方根。因此,添加'從數學導入sqrt,floor',然後將您的範圍更改爲'range(2,floor(sqrt(x)))' – Ord
您的原始邏輯,作爲pythonic一行:'def isPrime(x):return x> 1和所有(x%n在xrange(2,x)中的n)' – wim