如何使用Python在某个封闭间隔[2,n]中识别并打印所有理想数?

理想数是一个等于其适当除数之和的正整数。最小的完美数是6,是1、2和3的总和。

通过测试给定范围内给定条件下的每个数字,可以找到给定范围内的理想数字。 

示例

def print_perfect_nums(start, end):
   for i in range(start, end + 1):
   sum1 = 0
   for x in range(1, i):
      # Check if a divisor, if it is, add to sum
      if(i % x == 0):
         sum1 = sum1 + x
         if (sum1 == i):
            print(i)
print_perfect_nums(1, 300)

输出结果

这将给出输出

6
28