2812: 【例46.1】 完全数

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:8 解决:6

题目描述

一个数如果恰好等于它不包括自身的因子之和,这个数称为"完全数"。 例如,$6$ 的因子为 $1$、$2$、$3$,而 $6=1+2+3$,因此 $6$ 是"完全数"。 编程序找出 $N$ 之内的所有完全数,并按下面格式输出其因子(这里的因子里面,不包含自己)。

输入

输入一个整数 $n$($0\le n\le 1000$)。

输出

形式如:一个整数,然后 its factors are 后面一些整数,具体可参考样例输出
? its factors are ? ? ?

样例输入 复制

10

样例输出 复制

6 its factors are 1 2 3

提示

#include<bits/stdc++.h>
using namespace std;
int n;
void check(int x){
    int sum=0;
    for(int i=1;i<x;i++){
        if(x%i==0)sum+=i;
    }
    if(sum==x){
        cout<<x<<" its factors are ";
        for(int i=1;i<x;i++){
            if(x%i==0)cout<<i<<' ';
        }
        cout<<endl;
    }
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        check(i);
    }
    return 0;
}