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