python - “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
解决方案
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
推荐阅读
- javascript - 如何使用多个 Json URL 管理我的 Highcharts 钻取?
- apache-spark - 如何为嵌套目录结构定义分区外部表
- c - C中的哈希表链接问题
- python-3.x - 获取输入字符串时如何忽略空格、制表符、新行?
- reactjs - 如何在循环中获取最新的 redux 值?
- php - wp_enqueue_script 未在插件中加载
- messagekit - 在 MessageKit 中点击特定的 AccessoryView
- vector - 如何在 Rust 中提取字符串向量的元素?
- vue.js - VuePress 在开发和构建上的不同布局
- sql-server - 如何查找 SSAS(表格模型)和 SQL 数据库之间的沿袭