我在这里的这个程序有一个溢出错误!,我意识到那个程序的错误。当涉及到非常长的整数时,我不能使用 range 或 xrange。我尝试在 Python 3 中运行该程序,它可以工作。我的代码有效,但几次后响应。因此,为了优化我的代码,我开始考虑优化代码的策略。
我的问题陈述是一个数字被称为幸运,如果它的数字之和,以及它的数字的平方和是一个素数。A和B之间有多少个数字是幸运的?
我从这个开始:
squarelist=[0,1,4,9,16,25,36,49,64,81]
def isEven(self, n):
return
def isPrime(n):
return
def main():
t=long(raw_input().rstrip())
count = []
for i in xrange(t):
counts = 0
a,b = raw_input().rstrip().split()
if a=='1':
a='2'
tempa, tempb= map(int, a), map(int,b)
for i in range(len(b),a,-1):
tempsum[i]+=squarelist[tempb[i]]
我想要实现的是因为我知道该系列是有序的,只有最后一个数字发生了变化。我可以保存列表中较早数字的平方和,并不断更改最后一个数字。这不会每次都计算总和并检查平方和是否为素数。我无法将总和固定为某个值,然后继续更改最后一个数字。如何从这里继续前进?
下面提供了我的示例输入。
87517 52088
72232 13553
19219 17901
39863 30628
94978 75750
79208 13282
77561 61794