2017-02-26 41 views
-3

使用python我需要按升序返回前n个丰富数字的列表。丰富的数字是一个小于其完美除数之和的整数。例如,12是一个丰富的数字,因为它的完美除数(1,2,3,4和6)合计为16. 函数abundant(n)应该返回一个包含从小到大的前n个丰富数字的列表。例如,丰富的(7)会返回一个包含前七个丰富数字的列表。Python中丰富的数字列表

我曾尝试使用:

def abundant(n): 
    def factors(value): 
     factors = [x for x in range(1, value + 1 // 2 + 1) if value % x == 0] 
     return factors 
     if sum(factors) > value: 
      return value 
     abundant = factors() 
     return abundant[:n] 
+0

你试过了什么?什么不起作用?堆栈溢出不是代码写入服务。 – miradulo

回答

1

我不是在Python的专家,但我推荐一个for循环,所以:

# From 1 to 10 

n = 0 
for i in range(10): 
     n = n + 1 
     abundant(n) 

希望这有助于!