我正在创建一个函数,当一个数字(此处为X)为Prime时返回True。
所以我正在检查给定数字是否可以被2到X-1之间的整数整除。
但是当检查返回True时,while循环会中断。
帮助
def is_prime(x):
n = 2
if x < 2:
return False
elif x == 2:
return True
else:
while True and n < x:
if x % n == 0:
return False
else:
n += 1
return True #--The loop is breaking here--
答案 0 :(得分:2)
您的代码应如下所示:
def is_prime(x):
n = 2
if x < 2:
return False
elif x == 2:
return True
else:
while n < x:
if x % n == 0:
return False
else:
n += 1
# Put the return True after the loop
return True
print('{}: {}'.format(10, is_prime(10)))
print('{}: {}'.format(11, is_prime(11)))
print('{}: {}'.format(0, is_prime(0)))
print('{}: {}'.format(1, is_prime(1)))
print('{}: {}'.format(2, is_prime(2)))
print('{}: {}'.format(113, is_prime(113)))
输出:
10: False
11: True
0: False
1: False
2: True
113: True
答案 1 :(得分:1)
你在循环中使用了返回语句,所以它退出了方法。您需要更改此循环的逻辑。点击这里: Python Prime number checker