【发布时间】:2020-10-19 20:18:11
【问题描述】:
如果 n 是从 5 到 15
for i in range(3, int(math.sqrt(n))+1,2):
if n%i == 0:
return False
return True
另外一个问题是“return True”能不能这样写,如果不能,它们有什么不同?
for i in range(3, int(math.sqrt(n))+1,2):
if n%i == 0:
return False
else:
return True
【问题讨论】:
-
“它是如何工作的”是什么意思?它计算
n的平方根 - 这是它唯一要做的事情。 -
第一个问题是什么?如果
n为4,则第二个将失败,当i为3 时,它将输出True。 -
顺便说一句,如果你使用 Python >= 3.8,使用
math.isqrt(n)比使用int(math.sqrt(n))更好。