3
我写了一个函数来计算一个数是否为素数,但尝试它可能,它似乎无法给出正确的响应。它还打印正在递增的n值。下面是函数的代码(在Python,顺便说一句):素数检查功能故障
def isPrime(x):
for n in range(1, x):
print n
if x % n == 0:
return False
return True
如果我输入
isPrime(17)
该函数返回
1
False
这是怎么回事错在这里?
素数定义是错误的 – yosukesabai
只是一个侧面说明:有*加载*的方式来优化质数检查,但一个简单的方法是:只检查x的平方根。因此,添加'从数学导入sqrt,floor',然后将您的范围更改为'range(2,floor(sqrt(x)))' – Ord
您的原始逻辑,作为pythonic一行:'def isPrime(x):return x> 1和所有(x%n在xrange(2,x)中的n)' – wim