8623 求完数

描述

因子:因子也叫因数,例如 3×5=15,那么 3 和 5 是 15 的因子。
同时 15×1=15,那么 1 和 15 也是 15 的因子。 13515 这四个因子是 15 的所有因子。
完数:如果一个数等于不含它本身的其他因子之和,则称该数为‘完数’。
如 6 的因子有 1236,且 1+2+3=6,因此 6 是完数。

输入一个正整数 N,输出小于 N 的所有完数及小于 N 的完数个数(个数前加 “*” ,例如:2)。

输入描述

输入一个正整数 N。

输出描述

输出小于 N 的所有完数及小于 N 的完数个数。
每个输出一行,具体参考样例输出。

样例输入 1 

100

样例输出 1 

6
28
*2

提示

数据范围与提示

0<N<10000

 

#include<bits/stdc++.h>
#define f(i,s,e) for(int i = s; i <= e; i++)
#define ll long long
using namespace std;
const int N = 1e3+10,inf = 0x3f3f3f3f;
int check(int n)
{
    int sum = 0;
    f(i,1,n / 2)
        if(n % i == 0)
            sum += i;
    return sum == n;
}
int main()
{
    int n,sum = 0;
    cin >> n;
    f(i,1,n)
        if(check(i))
        {
            cout << i << endl;
            sum++;
        }
    cout << "*" << sum;
    return 0;
}

 

posted @ 2024-06-28 14:45  CRt0729  阅读(29)  评论(0编辑  收藏  举报