【发布时间】:2010-10-08 23:03:17
【问题描述】:
我正在尝试解决问题:
第一个有五百多个除数的三角形数的值是多少?
三角形数是数之和的序列中的一个数,即 1+2+3+4+5...
我很确定这是有效的代码,但我不知道,因为我的计算机计算它的时间太长了。有没有人知道如何使程序更快一点。
谢谢。
import math
def main():
l = []
one = 0
a = 1
b = 2
while one == 0:
a = a + b
b += 1
for x in range(1, int(a/2 + 1)):
if a % x == 0:
l.append(x)
if len(l) > 499:
print a
if __name__ == '__main__':
main()
【问题讨论】:
-
请不要发布“one == 0”计算结果为真的代码。看着就心疼:|
-
习惯它:-) 这是一个很好的比较。而在这个节目中,总是如此……
-
@Renze de Waal:你不能说
while 1或至少while 1==1?变量不能叫running什么的吗? -
好的,但是为了你自己的理智,请尝试使用一致的缩进:)
-
while True: 似乎是正确的做法(我不是 Python 专家,但我的 Python 接受它)。
标签: python