2014-02-12 69 views
-2

DEF BHL(X): 如果x == 1: 返回False elif的X == 2: 返回TRUE elif的X%2 == 0: 在範圍b(3,INT返回False ( X ** 0.5 +1)): 如果x%b == 0: 返回False 其他: 返回true有人可以爲我解釋代碼嗎?

不知道是不是我太累了,但我實在想不出什麼這部分代碼的確如此。是否有人可以解釋給我:

elif x % 2 == 0: 
    return False 
for b in range(3,int(x**0.5 +1)): 
    if x % b == 0: 
     return False 
else: 
    return True 
+1

如果x被2整除可以返回false並且下一行如果x被b整除可以返回false; – Matt

回答

1

它檢查x是否爲素數

x % 2 == 0檢查,如果x是偶數,或者換句話說,它沒有剩餘時,您可以通過2

for b in range(3,int(x**0.5 +1)): if x % b == 0: return False 
把它

這將檢查從3到x/2 + 1,如果有一個數字除以x而無餘數。 先前的例子檢查了1和2,並且沒有意義檢查一個大於x/2的數是否沒有餘數來分割x,因爲沒有一個。

相關問題