zw3*_*324 3 python memory-management list
今天我用一个包含64000000个条目的数组/列表编写了一个程序.然而,当sigma=[1]*64000000使用Python 编写它运行正常,但稍后,随着程序计算,我的Ubuntu冻结 - 没有任何反应输入,甚至鼠标移动.我试了两次,结果是一样的.
在C++中实现时,long long sigma[64000000]保持良好并且运行速度非常快.
有没有什么理由说我的程序会在运行过程中冻结,而不是在开始时崩溃?
编辑:要回复下面的克里斯,我的代码直到几个循环之后才冻结.
谢谢你们!
对于那些有兴趣看到代码的人来说,这就是程序,一个蛮力的Project Euler 211:
def e211():
ans=0
sigma=[1]*64000000
for i in range(2,64000000):
j=i;
if ((j%1000==0) or (j<100)):
print(j)
q=i*i
while j<64000000:
sigma[j]+=q
j+=i
for i in range(1,64000000):
j=int(sqrt(sigma[i]))
if j*j==sigma[i]:
ans+=i
if __name__=='__main__':
print(e211())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2940 次 |
| 最近记录: |