非常大数量的Python

时间:2013-02-27 07:49:56

标签: python biginteger

我搜索了数据库和食谱,但似乎无法找到正确的答案。我有一个非常简单的python代码,它总结了一个范围内的自我权力。我需要这个非常大的数字的最后十位数字,我已经尝试了getcontext()。但是我仍然达到了极限。

以下是代码:

def SelfPowers(n):
      total = 0
      for i in range(1,n):
          total += (i**i)
      return(total)

print SelfPowers(n)

我怎样才能看到所有这些美丽的数字?它在我的四核上打印速度相对较快。这只是为了ProjectEuler的乐趣,问题#48,没有剧透请求我不想解决方案而且我不想为我完成工作,所以如果你能指出我正确的方向吗?

谢谢, 熔点

2 个答案:

答案 0 :(得分:8)

如果你想要一个数字的最后十位数,不要计算整个事情(这需要太多的记忆和时间)。

相反,考虑使用pow的“三参数”形式计算特定基础的权力,你会发现问题更容易。

答案 1 :(得分:2)

在Python 3.2上测试我能够

print(SelfPowers(10000))

虽然花了几秒钟。你想的数字有多大?

修改:您好像想要使用1000?在这种情况下,升级到Python 3,你应该没问题。