我搜索了数据库和食谱,但似乎无法找到正确的答案。我有一个非常简单的python代码,它总结了一个范围内的自我权力。我需要这个非常大的数字的最后十位数字,我已经尝试了getcontext()。但是我仍然达到了极限。
以下是代码:
def SelfPowers(n):
total = 0
for i in range(1,n):
total += (i**i)
return(total)
print SelfPowers(n)
我怎样才能看到所有这些美丽的数字?它在我的四核上打印速度相对较快。这只是为了ProjectEuler的乐趣,问题#48,没有剧透请求我不想解决方案而且我不想为我完成工作,所以如果你能指出我正确的方向吗?
谢谢, 熔点
答案 0 :(得分:8)
如果你想要一个数字的最后十位数,不要计算整个事情(这需要太多的记忆和时间)。
相反,考虑使用pow
的“三参数”形式计算特定基础的权力,你会发现问题更容易。
答案 1 :(得分:2)
在Python 3.2上测试我能够
print(SelfPowers(10000))
虽然花了几秒钟。你想的数字有多大?
修改:您好像想要使用1000
?在这种情况下,升级到Python 3,你应该没问题。