【发布时间】:2016-08-02 09:22:07
【问题描述】:
我是编程新手,在尝试编写程序以找出素数时遇到问题。这是我的代码:
def is_prime(x):
if x < 2:
return False
elif x == 2:
return True
else:
for n in range (2,x-1):
if x % n == 0:
return False
else:
return True
我收到一条错误消息,指出“您的函数在 is_prime(3) 上失败。它在应该返回 True 时返回 None。”
有人能解释一下这段代码的缺陷吗?
谢谢!
【问题讨论】:
-
您的循环在第一次迭代中总是返回
True或False(如果没有迭代则什么都没有)。如果 整个循环 完成但没有找到任何因素,您应该只返回True。
标签: python if-statement for-loop primes prime-factoring