【发布时间】:2022-11-25 02:55:38
【问题描述】:
嘿,所以我有这个功能来检查一个数字是否是质数
def is_prime(n):
flag = True
for i in range(2, n ):
if (n % i) == 0:
flag = False
return flag
print(is_prime(1))
但是,当我测试数字 1 时,它会跳过 for 循环并返回 True,这是不正确的,因为 1 不是素数。 我该如何解决这个问题?
【问题讨论】:
-
你必须把它作为一个特例。如果 n == 1,则返回 False。
-
谢谢,你会不会碰巧知道为什么它认为 1 是质数。整个事情是一般数学的讨论。有人认为 1 不是质数,也有人认为相反。
-
显然,如果您从 2 开始循环,则您当前的代码对于 1 没有明确定义。