我想使用sage来计算以下总和:
(D-b ^ 2)/ 4的除数之和,其中b是满足的整数; b的绝对值小于D,b等于D modulo 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
我收到无效的语法错误消息。
答案 0 :(得分:1)
目前,您的语法确实无效。 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))
做了什么,会给你一个有问题的总和清单? (我没有看到你试图检查模数条件,但是你想要逐步建立代码是正确的,所以这没问题。)