web-dev-qa-db-ja.com

「while」ループの問題

どういうわけか、それを実行すると、以下に示す方法で、数値のすべての約数を追加できる関数を実行する必要があります。

これは私を夢中にさせています、私は約1時間同じ問題に直面しています。

def sum_divisors(n):
  # Return the sum of all divisors of n, not including n
  divisor = 1
  while divisor < n:
    if n%divisor==0:
      return divisor
      divisor = divisor + 1
    else:
      divisor = divisor + 1

print(sum_divisors(6)) # Should be 1+2+3=6
print(sum_divisors(12)) # Should be 1+2+3+4+6=16
1
Miguel Estrada

def sum_divisors(n):

total = [0]
divisors = 1
while divisors < n:
    if n % divisors == 0:
        result.append(divisors)
    else:
        pass
    divisors += 1
return sum(total)
1
Etijie Gideon

5行目にif条件が存在する必要があるため、0に対しても必要な結果が得られます。

if(num==0):
return result;
0
JasonJerry