git add /Source/Foundation Assemblies/
我正在使用Ideone。
这是错误
运行时错误时间:0.03内存:9984信号:-1
回溯(最近一次呼叫最后一次):文件" ./ prog.py",第13行,在 文件" ./ prog.py",第2行,inPrime NameError:name' math' 未定义
答案 0 :(得分:2)
它会为您提供该错误,因为您忘记导入math
。但是,即使您这样做,仍会出现错误,因为range()
需要一个整数参数,而math.sqrt()
会返回float
。此外,您需要高于平方根,因为range()
的第二个参数是独占的。你可以这样做:
import math
def isPrime(n):
for i in range(2, int(math.sqrt(n)) + 1):
if n%i == 0:
return False
return True
#limits calculated using prime number theory by hand
primes=[]
for num in range(104319,114319):
if isPrime(num):
primes.append(num)
答案 1 :(得分:1)
math.sqrt
返回一个float对象,但range
需要一个int
对象。你应该做
def isPrime(n):
for i in range(2,int(math.sqrt(n))+1): #Convert the result of math.sqrt to int
if n%i ==0 :
return False
return True
编辑:编辑“NameError:name'math'未定义”后,你应该在开头导入数学
import math
def isPrime(n):
#...
答案 2 :(得分:0)
在代码的顶部,您需要导入您正在调用的模块
import math
答案 3 :(得分:0)
以下内容应修复您的代码。
span