首页 > 解决方案 > “while”循环的问题

问题描述

我必须以某种方式执行一个函数,当我执行它时,我将能够以如下所示的方式添加一个数字的所有除数。

这让我发疯了,我遇到同样的问题大约一个小时。

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

标签: pythonloopswhile-loop

解决方案


def sum_divisors(n): 
    sum = 0
    z = 1

    while n > z:
        if n % z == 0:
            sum = sum + z
            z = z + 1
        else:
            z = z + 1
    # Return the sum of all divisors of n, not including n
    return sum

推荐阅读