def trisum():
divs = 1
great = 1
n = 1
while divs < 500:
divs = 1
n += 1
tri = sum(i for i in range(1,n+1))
#divisors = [tri]
for x in range(1,tri):
if tri%x == 0:
#divisors.append(x)
divs += 1
else:
pass
if divs > great:
great = tri
print(great)
#grVal = sorted(divisors, reverse=True)
#print("{}: {}".format(divs,tri))
print(great)
trisum()
s = input("")
这是我解三角形值的代码,它可以找到500个以上的除数,它适用于较小的数字,但对于500个,它需要很长时间,我也没有得到答案。我90%的代码适用于所有的除数,我从一个列表变成只给最大的三角形和赋值一个变量。在
为什么我的代码还这么慢?任何帮助都将不胜感激,谢谢。在
你可以试着通过简单的加法来减少求和
另外,求除数时,不要上到tri,要上到
^{pr2}$因为能将任何一个数等分的最大数是这个数的一半。[希望这有帮助,我无法测试,因为我正在使用我的手机]
相关问题 更多 >
编程相关推荐