如何优化Project Euler的第12个问题(找到第一个有500个除数的三角形数)?

2024-04-29 15:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我是编码界的新手。我试图解决欧拉计划的第12个问题,找到第一个有500个除数的三角形数

我的代码在17秒左右返回结果。我相信有很多方法可以在更短的时间内运行它。有人能帮我优化代码吗

这是我的密码:

def divisor_triangle_numbers(div):
    tr_num = 1
    n = 2
    while True:
        tr_num += n
        divs = 0
        for i in range(1,int(tr_num**0.5)+1):
            if tr_num%i == 0:
                divs += 2
                if divs > div:
                    print(tr_num, divs)
                    return tr_num, divs
        n += 1