Python素数检查

时间:2015-03-14 12:11:21

标签: python error-handling primes

人!

我有一个codecademy Python课程练习,我必须检查传递的参数是否为素数。我的代码如下所示:

def is_prime(x):
    for n in range(2, x-1):
        if (x < 2):
            return False
        elif(x % n == 0):
            return True
        else:
            return False

在我看来,我已经涵盖了所有可能性,但它始终显示此错误:

Your function fails on is_prime(0). It returns None when it should return False.

就我所见,这属于第一个if条件。有人能解释一下这是怎么回事吗?

2 个答案:

答案 0 :(得分:4)

提示,当x为0时,range(2, x-1)内的数字是什么?

答案 1 :(得分:2)

此版本可能有效。

def is_prime(x):
    if (x < 2): 
        return False
    for n in range(2, x-1): 
        if(x % n == 0): 
            return False
    return True