我正在尝试使用any()方法创建一个函数来告诉您数字是否为素数。这就是我所拥有的:
def prime(n):
if any(n % i == 0 for i in range(1, n + 1)) != True:
print("Prime")
else:
print("Not Prime")
prime(5)
但它给了我:
Not Prime
每一次,即使我给出一个素数。
有人可以帮帮我吗?
答案 0 :(得分:1)
所有东西都可以被1整除,因此检查会将所有内容视为非素数。您需要将下限设置为2来检查。
正如@ForceBru的评论所指出的,上限也是错误的。您不想检查n
是否可以自行整除,因为它始终是可以的。
将理解中的range
更改为:
range(2, n))