# -*- coding:cp936 -*-
'''------------------------------------------------------
【程序设计】
---------------------------------------------------------

题目:编写函数main找出1000以内的所有完数。

说明:一个数若恰好等于它的真因子(即除了本身以外的约数)
      之和,这个数就称为完数。

要求:使用列表函数完成

例如:6=1+2+3   6即为完数

---------------------------------------------------------
注意:部分源程序给出如下。请勿改动其它函数中的任何内容,
      仅在函数的注释标志之间填入所编写的若干语句。
------------------------------------------------------'''
def main():
    for x in range(1, 1001):
    #**********Program**********
        #将因子放在列表中
        lists = []
        for factor in range(1, x):
            if x % factor == 0:
                lists.append(factor)
    #**********  End  **********
        if x == sum(lists):
            print("【完数为:】%d"%x)
            print("【它的真因子为:】%s"%lists)

if __name__ == '__main__':
    main()