gpt4 book ai didi

python - 素数检查功能不适用于测试用例

转载 作者:行者123 更新时间:2023-12-01 00:28:00 24 4
gpt4 key购买 nike

我对编码相当陌生,但我的代码有问题。该代码似乎适用于每个测试编号,我可以说出原因。

num1 = int(input('Please enter a positive integer: '))

def is_prime(x):
if x <= 1 :
return False
elif x == 2:
return True
for n in range(3,x-1,2):
if x % n == 0:
return False

return True

print(is_prime(num1))

4 返回了 True 值,而它应该是 False

最佳答案

这是你的罪魁祸首:

for n in range(3,x-1,2):
if x % n == 0:
return False

return True

范围中的步长项是从 3 开始的 2,因此不会测试 4。由于未经测试,您的函数仅返回 True

您可以通过在范围之前添加另一个检查输入 mod 2 的 elif 来简单地解决此问题。

def is_prime(x):
if x <= 1 :
return False
elif x == 2:
return True
elif x % 2 == 0:
return False

for n in range(3,x-1,2):
if x % n == 0:
return False

return True

关于python - 素数检查功能不适用于测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58402253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com