2014-02-12 40 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,因为没有一个。

相关问题