您的位置:首页 > 其它

九度oj 题目1050:完数

2017-02-24 21:42 239 查看
题目1050:完数

时间限制:1秒

内存限制:32兆

特殊判题:

提交:8778

解决:3612

题目描述:
求1-n内的完数,所谓的完数是这样的数,它的所有因子相加等于它自身,比如6有3个因子1,2,3,1+2+3=6,那么6是完数。即完数是等于其所有因子相加和的数。

输入:
测试数据有多组,输入n,n数据范围不大。

输出:
对于每组输入,请输出1-n内所有的完数。如有案例输出有多个数字,用空格隔开,输出最后不要有多余的空格。

样例输入:
6

样例输出:
6


#include<iostream>
#include<cstdio>
#include<vector>
#include<cmath>
usingnamespacestd;

intmain(){
intn,sum,i,j,k;
vector<int>v;
while(cin>>n){
v.clear();
for(i=2;i<=n;i++){
sum=1;
for(j=2;j<=sqrt(i);j++){
if(i%j==0){
if(j*j==i)
sum+=j;
else
sum+=(j+i/j);
}
}
if(sum==i)
v.push_back(i);
}
cout<<v[0];
for(k=1;k<v.size();k++)
cout<<""<<v[k];
cout<<endl;
}
return0;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: