【发布时间】:2015-09-19 20:14:53
【问题描述】:
我正在尝试根据:Prime equations 编写质数检查器
到目前为止,我的代码如下所示:
def primer(x):
prime = False
x = math.sqrt(x)
if type(x) == float:
x = math.ceil(x)
for i in range(3,x + 1):
if (i % 2) == 1:
prime == True
print(prime)
尝试使用 37 作为 primer(37) ---> sqrt(37) 是 6.08
四舍五入到 7
7 mod 3 = 1(质数)
我不知道prime var 没有更新。请问有人能指点一下吗?
编辑:链接一些 repl -> Repl Link
【问题讨论】:
-
您可以使用
range(3,x + 1, 2)加快速度;仅检查奇数 - 并分别检查偶数。 -
@hiroprotagonist 将添加!谢谢
-
@Onilol,另外,您可以在
if中添加break。 -
代码错误。
i永远是真的
标签: python if-statement for-loop range