我写了一个计算一个数是否为质数的函数,但是尽管它试图这么做,似乎无法给出正确的响应。它还会打印被递增的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
这里出了什么问题?
from math import sqrt, floor
,然后将您的范围更改为range(2,floor(sqrt(x)))
。 - Orddef isPrime(x): return x > 1 and all(x % n for n in xrange(2,x))
- wim