除数の合計をメモしようとしています。
divisorSums = {}
def sumDivisors(num):
global divisorSums
total = 0
if num == 1:
return 0
for i in xrange(num/2, 0, -1):
if i in divisorSums:
return divisorSums[i]
else:
if not num % i:
total += i
divisorSums[num] = total
return total
ただし、これは、数値をループすると、すべての数値に対して 1 を返します。単品で使えば正しいので、問題は私のルックアップシステムです。辞書で値を探す方法を理解していないと確信しています。誰かが私を助けることができますか?