代码之家  ›  专栏  ›  技术社区  ›  sophie668

Sage:整数的除数之和

  •  0
  • sophie668  · 技术社区  · 11 年前

    我想使用sage计算以下总和:

    (D-b^2)/4的除数之和,其中b是满足的整数;b的绝对值小于D,并且b等于D模2。

    这就是我所尝试的:

    def bqfs(d):
    answer=[]
    for b in range (sqrt(d)):
        c=(d-b^2)/4
    if c.is_integral():
            answer.extend(sum(sigma(c))
    return answer
    

    我收到无效语法错误消息。

    1 回复  |  直到 11 年前
        1
  •  1
  •   kcrisman    11 年前

    目前,确实存在无效语法。Python(Sage基于此) indentation as syntax .

    这是有效的:

    def bqfs(d):
        answer = []
        for b in range(sqrt(d)):
            c = (d-b^2)/4
            if c.is_integral():
                answer.extend(sum(sigma(c)))
        return answer
    

    但它没有意义,也不起作用,因为 sigma(c) 已经是的除数之和 c ,并且不能单独对整数求和;你需要一份清单。

    如果你真的这么做了呢 answer.extend(sigma(c)) ,哪一个能给你一份有问题的金额清单?(我还没有看到您试图检查模条件,但您希望增量构建代码是正确的,所以这没有问题。)