完数
时间限制(普通/Java) :
1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 2414 测试通过 : 516
总提交 : 2414 测试通过 : 516
比赛描述
自然数中,完数寥若晨星,请在从1到某个整数范围中打印出所有的完数来。所谓“完数”是指一个数恰好等于它的所有不同因子之和。例如,6是完数,因为6=1+2+3。而24不是完数,因为24≠1+2+3+4+6+8+12=36。
输入
输入数据中含有一些整数n(1<n<10000)。
输出
对于每个整数n,输出所有不大于n的完数。每个整数n的输出由n引导,跟上冒号,然后是由空格开道的一个个完数,每个n的完数列表应占独立的一行。
样例输入
100
5000
样例输出
100: 6 28
5000: 6 28 496
题目来源
ZJUT
#include <iostream>
using namespace std;
#include <cstdio>
int main(void){
int n=0;
while(cin>>n){
cout<<n<<":";
if(n>6)
cout<<" "<<6;
if(n>28)
cout<<" "<<28;
if(n>496)
cout<<" "<<496;
if(n>8128)
cout<<" "<<8128;
cout<<endl;
}
}
/*
int main(void){
int m=0,n=0,i=0,j=0;
while(cin>>n){
cout<<n<<":";
for(m=6;m<n;++m){
for(i=1,j=0;i<m;++i){
if(m%i==0){
j+=i;
}
}
if(j==m){
cout<<" "<<m;
}
}
cout<<endl;
}
}
*/