【发布时间】:2013-10-23 11:43:21
【问题描述】:
嗨,我正在制作一个函数来检查一个数字是否是素数,但它告诉我 9 是素数。
def eprimo(num):
if num < 2:
return False
if num == 2:
return True
else:
for div in range(2,num):
if num % div == 0:
return False
else:
return True
【问题讨论】:
-
问题是什么?
-
单步调试您的代码。你试过什么?
-
作为一个效率说明你只需要从 2 到 num/2 进行测试
-
(num ** .5) +1或 math.sqrt(num)+1 实际上。 -
protip:在
eprimo的第一行放import pdb; pdb.set_trace()- here 是一个相当不错的教程,如果你需要的话。