检查素性校正的功能?

时间:2013-06-09 02:35:51

标签: python function primes

检查输入是否为素数的函数。 我知道它已被覆盖了很多次,但我的代码由于某种原因给了我x = 32的真实,我无法弄清楚为什么

def is_prime(x):
    if x < 2:
        return False
    elif x == 2:
        return True
    else: 
        for i in range(3,x): #Ignore sqrt(x) improvement
            if x%i == 0:
                return False
            else :
                return True

1 个答案:

答案 0 :(得分:1)

for i in range(3,x):

首先是数字3.作为32 % 3 != 0,它返回True。然后函数中断,因为它返回了一个值。

考虑在for循环之后放置return True

for i in range(3,x): #Ignore sqrt(x) improvement
    if x % i == 0:
        return False
return True

现在,如果一个数字可以被整除,它将立即中断并返回False。但如果没有数字进入32,for循环将完成,它将返回True

此外,如果您使用的是python 2.x,使用xrange()会更快,因为它会返回一个生成器:)。