欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python-1000以内的完数

程序员文章站 2024-02-26 19:15:16
...

首先分别取出1000以内的数;
然后分别找到他们的约数(约数首先小于等于它本身,而这里不需要它本身,其次能被整除);
最后判断

def perfect(num):
    results = []
    
    for p in range(1, num):    
        tmp = [] 
        for q in range(1, p):
            if p % q == 0:
                tmp.append(q)
        if sum(tmp) == p:
            results.append(p)
    return results

print(perfect(1000))

注意:如果存放约数的列表tmp = []定义在result=[]下面,那么结果会输出空列表,菜鸟原因不明,哪位大佬知晓,还望告知,感激不尽。

def perfect(num):
    results = []
    tmp = []
    
    for p in range(1, num):    
         
        for q in range(1, p):
            if p % q == 0:
                tmp.append(q)
        if sum(tmp) == p:
            results.append(p)
    return results

print(perfect(1000))

python-1000以内的完数