【发布时间】:2013-02-27 15:55:01
【问题描述】:
我搜索了数据库和食谱,但似乎找不到正确的答案。我有一个非常简单的 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
【问题讨论】:
-
提示:您不需要计算这些数字,只需计算它们的最后 10 位数字即可。所以,你可以使用数论相等
mod(a*b, m) = mod(mod(a,m) * mod(b,m), m)(适用于m=10^10) -
@ypercube: Python 通过提供
pow(a,b,n)(等于(a**b)%n,但速度更快)使其变得非常简单。
标签: python biginteger