首页 > 试题广场 >

完数

[编程题]完数
  • 热度指数:7518 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
    求1-n内的完数,所谓的完数是这样的数,它的所有因子相加等于它自身,比如6有3个因子1,2,3,1+2+3=6,那么6是完数。即完数是等于其所有因子(除了它自己)相加和的数。

输入描述:
    测试数据有多组,输入n,n数据范围不大。


输出描述:
    对于每组输入,请输出1-n内所有的完数。如有案例输出有多个数字,用空格隔开,输出最后不要有多余的空格。
示例1

输入

6

输出

6
#include <stdio.h>

int main() {
    int n, a[100], k = 0;
    scanf("%d", &n);
    for(int i = 1; i <= n; i ++){
        int sum = 0;
        for(int j = 1; j <= i/2; j ++){
            if(i%j==0){
                sum += j;
            }
        }
        if(sum == i){
            a[k ++] = i;
        }
    }
    for(int i = 0; i < k; i ++){
        printf("%d%c", a[i], i==k-1?'\n':' ');
    }
    return 0;
}

发表于 2023-03-12 16:43:36 回复(0)

问题信息

难度:
1条回答 9249浏览

热门推荐

通过挑战的用户

查看代码
完数