8623 求完数
描述
因子:因子也叫因数,例如 3×5=15,那么 3 和 5 是 15 的因子。
同时 15×1=15,那么 1 和 15 也是 15 的因子。 1,3,5,15 这四个因子是 15 的所有因子。
完数:如果一个数等于不含它本身的其他因子之和,则称该数为‘完数’。
如 6 的因子有 1,2,3,6,且 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; }