我正在承担Euler项目(#188)的一个问题,我撞到了一堵墙。问题的具体说明如下:

我的python解决方案如下:
Q = input()
List1 = []
List2 = []
Answers = []
for i in range(int(Q)):
List1.append(input())
List2.append(List1[i].split(" "))
for j in range(int(List2[i][1])):
List2[i][0] = int(List2[i][0]) ** int(List2[i][0])
Answers.append(int(List2[i][0]) % int(List2[i][2]))
for k in range(len(Answers)):
print(Answers[k])它对于较小的输入非常有效,但是一旦幂变得非常大,程序就会工作很长时间,以至于我得到了一个超时错误。有没有办法绕过python3的指数运算明显低效的问题,或者我可能做错了什么?如有任何帮助,我们不胜感激!
发布于 2018-10-08 23:55:57
涉及的数字太大了。你正试图强行解决这个问题,这是行不通的--一些涉及到的数字可能会占用数兆字节的空间--甚至是太多的内存,以至于它无法在可观察到的宇宙中运行。Python不能帮助您;有一些解决方案涉及到更聪明的数学。尝试打印一些幂运算结果-例如,3的幂。看看剩下的部分。可能会有一些重复或模式。遵循并概括这一点。
https://stackoverflow.com/questions/46260804
复制相似问题