显示输入数字之内的完全数

任务描述本关任务:显示输入数字之内的完全数。 一个数整等于其所有因子之和(不含这个数本身),则称这个数为完全数。例如 6=1+2+3,所以 6 是完全数。
编程要求根据提示,在右侧编辑器补充代码,显示输入数字之内的完全数。如果没有完全数,请输出‘没有完全数!’
测试用例用户输入1000 输出 6 28 496


n = int(input())

a = []
for i in range(1, n):
    s = 0
    for j in range(1, i):
        if i % j == 0 and j < i:
            s += j
    if s == i:
        a.append(i)

if a:
    print(' '.join(map(str,a)))
else:
    print('没有完全数!')

运行结果:

img

img

【doge】
完全数就那么几个,如果只要求输出正确,完全可以这样搞

a=[6 ,28 ,496]
b=int(input())
for i in a:
    if i<=b:
        print(i,end=' ')
if b<6:
    print('没有完全数!')

def perfect_num(m):
    # 完全数函数
    sum = 0
    for i in range(1,m):
        if m%i == 0:
            sum = sum+i
    return sum

n = int(input("请输入一个整数: "))
for item in range(1,n+1):
    if item == perfect_num(item):
        print(item)

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7803534
  • 以下回答由chatgpt基于相关博客总结生成:

    寻找完全数

    1. 首先,提示用户输入数字范围并将其存储在变量中。

    python n = int(input("请输入数字范围: "))

    1. 编写函数来判断给定数字是否为完全数。利用两个循环,第一个循环枚举从 1 到 n 的所有数字,第二个循环枚举因子,将因子相加只和与该数字本身进行比较,如果相等则该数字为完全数。

    python def is_perfect(number): sum = 0 for i in range(1, number): if number % i == 0: sum += i return sum == number

    1. 循环 1 到 n,对于每个数字,判断它是否为完全数,如果是,将其打印输出。

    python flag = False for i in range(1, n+1): if is_perfect(i): print(i) flag = True if not flag: print("没有完全数!")

    完整代码:

    def is_perfect(number):
        sum = 0
        for i in range(1, number):
            if number % i == 0:
                sum += i
        return sum == number
    
    
    n = int(input("请输入数字范围: "))
    flag = False
    for i in range(1, n+1):
        if is_perfect(i):
            print(i)
            flag = True
    if not flag:
        print("没有完全数!")