我的程序是找到任意两个给定数字(包括两者)之间的完美平方数
# Enter your code here. Read input from STDIN. Print output to STDOUT
import math
t=int(raw_input())
for i in range(0,t):
count=0
s,e=raw_input().strip().split(' ')
s,e=[int(s),int(e)]
for j in range(s,e+1):
if math.sqrt(j)==math.floor(math.sqrt(j)):
count+=1
print count
输入例如:
3
59 999999922
9 999999966
12 999999988
弹出的错误是:
Traceback(最近一次调用最后一次):文件“solution.py”,第8行,in 对于范围内的j(s,e + 1):MemoryError
为什么会出现此错误?我该如何解决? 对不起,我是这个stackoverflow的新手。
答案 0 :(得分:0)
range()
在内存中创建一个列表,如果t
的值变得足够大,那么你就是在运行我们的内存。使用延迟评估,replace range()
with xrange()
。