python编码问题中的any()

时间:2018-06-05 11:39:00

标签: python

我正在尝试使用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

每一次,即使我给出一个素数。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

所有东西都可以被1整除,因此检查会将所有内容视为非素数。您需要将下限设置为2来检查。

正如@ForceBru的评论所指出的,上限也是错误的。您不想检查n是否可以自行整除,因为它始终是可以的。

将理解中的range更改为:

range(2, n))