【发布时间】:2016-12-18 20:44:32
【问题描述】:
当我需要确定一个数字 x 是否是素数时,我遇到了一个小问题。 x 将是一个随机生成的正整数,我在执行代码时收到以下消息:
Your function fails on is_prime(2). It returns None when it should return True.
我的代码:
def is_prime(x):
if x < 2:
return False
else:
for n in range(2, x):
while x % n == 0:
return False
break
else:
return True
我希望 while 循环遍历 n == 2 直到 n == (x-1) 但它似乎没有这样做! 我做错了什么?
【问题讨论】:
-
“我希望 while 循环遍历 n == 2 直到 n == (x-1)” - 这不是
for循环的工作吗? -
是的,我的意思是 for 循环对不起:)
-
你为什么加入
while循环? -
我解决了!是的,while循环是不必要的
标签: python integer int primes modulus