完数:一个数恰好等于不包括自身的所有不同因子之和。如6=1+2+3。
输入:每一行含有一个整数n。
输出:对每个整数n,输出所有不大于n的完数。输出格式为:整数n,冒号,空格,完数,空格,完数,空格...
输入样例:
100
5000
输出样例
100: 6 28
5000: 6 28 496
#include<iostream>
#include<fstream>
using namespace std;
int main(){
ifstream cin("data.txt");
int limit = 0;
while(cin >> limit){
cout << limit << ": ";
for (int i = 2; i <= limit; ++i){
int sum = 0;
for(int j = 1; j <= i/2; ++j){
if (i % j == 0)
sum += j;
}
if (sum == i)
cout << i << " ";
}
cout << endl;
}
return 0;
}