不明白为什么如果陈述失败。功能查找素数

时间:2015-11-04 08:30:30

标签: python

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

对于数字9,它不起作用,返回true。 请用基本术语解释。

1 个答案:

答案 0 :(得分:3)

您必须删除else循环中的for条件。例如:对于输入:9当执行进入for循环时,检查的条件为9 % 2 == 0。由于它是False,执行将继续到else部分并返回值True。它没有做的是继续检查与其他数字的可分性。因此,如果条件不是True,它应该继续检查与其他数字的可分性。

<强>代码:

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