1
为什么会这样:为什么会有一个TypeError
def p3(x):
primes = [2]
for a in range(3, x, 2):
sqrt = a ** 0.5
for b in range(3, sqrt, 2):
if a % b == 0:
break
if a % b != 0:
primes.append(a)
return primes
print(p3(19))
回报这样的:
TypeError: 'float' object cannot be interpreted as an integer, line 5
是什么意思?我怎么纠正呢?
由于提前,
LewisC
请记住,'INT(开方)'将全面平方根下来,和'范围停止()不包含'。这里需要'int(sqrt)+ 1'。否则,9将被视为素数。 – 2013-03-02 12:31:20