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。 请用基本术语解释。
答案 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