非常非常大的数字Python

3 投票
2 回答
1668 浏览
提问于 2025-04-17 17:17

我在数据库和食谱里搜索了很久,但就是找不到正确的答案。我有一段非常简单的Python代码,它可以计算一个范围内的自幂和。我需要这个非常非常大的数字的最后十位数字,我尝试过使用getcontext().prec,但还是遇到了限制。

这是代码:

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

print SelfPowers(n)

我该如何查看那些美丽的数字呢?在我的四核处理器上打印得相对较快。这只是为了好玩,做的是ProjectEuler的第48题,请不要剧透,我不想要答案,也不想别人替我完成工作,所以如果你能给我一些指引就好了。

谢谢,
mp

2 个回答

2

我在Python 3.2上测试的时候可以做到这个

print(SelfPowers(10000))

不过花了几秒钟。你想要处理多大的数字呢?

补充:看起来你想用1000这个数字?如果是这样的话,升级到Python 3就可以了,应该没问题。

8

如果你只想要一个数字的最后十位数字,那么就不要去计算整个数字(这样会占用太多内存和时间)。

相反,可以考虑使用pow的“三个参数”形式来计算某个基数的幂的模,这样你会发现问题变得简单多了。

撰写回答