求完全数。最好用python,c也可以

问题遇到的现象和发生背景

1088:练6.4 求完全数

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 429 通过数: 229
【题目描述】
求正整数2和n之间的完全数(一行一个数)。

完全数:因子之和等于它本身的自然数,如6=1+2+3

【输入】
输入n(n≤5000)。

【输出】
一行一个数,按由小到大的顺序。

【输入样例】
7
【输出样例】
6

def wq(x):
    s=0
    for i in range(1,x):
        if x%i==0:
            s=s+i
    if s==x:
        return True
    else:
        return False
num=int(input())
for i in range(2,num+1):
    if wq(i):
        print(i)
def fun(n):
    s = {1}
    for i in range(2,int(n**0.5)+1):
        if n%i==0: 
            s.add(i)
            s.add(n//i)
    return sum(s)==n

n = int(input())
for i in range(2,n+1):
    if fun(i):print(i)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632