我很抱歉问了这样一个新手问题,但我在用 Python 编写一个非常基本的程序来检查数字是否为素数时遇到了问题。
这是我的代码:
def is_prime(x):
if x < 2:
print ('Please enter a number >= 2.')
else:
if x == 2 or x == 3 or x == 5:
return True
if x == 4:
return False
for num in range (2, int(x/2)):
if x % num == 0:
return False
break
else:
return True
但这对于所有奇数都返回 True;不仅仅是主要的。我不明白为什么。如果有人能指出我正确的方向,我将不胜感激! :)
最佳答案
您的代码仅检查 num % 2
并根据结果返回 True
或 False
。因此,它对于所有奇数都返回 True
。如果循环没有遇到return False
,您应该return True
,请参阅代码。
def is_prime(x):
if x < 2:
print ('Please enter a number >= 2.')
else:
if x == 2 or x == 3 or x == 5:
return True
if x == 4:
return False
for num in range (2, int(x/2)):
if x % num == 0:
return False
return True
>>> is_prime(11)
True
>>> is_prime(9)
False
P.S - 返回
后不需要休息
。 :)
关于python - Python 中的 is_prime(x) 程序有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18132953/