首页 > 代码库 > ACM——完数
ACM——完数
完数
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:1930 测试通过:413
描述
自然数中,完数寥若晨星,请在从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
#include <iostream>#include <vector>using namespace std; int main(){ vector<int> a; for(int i=2;i<10000;i++) { int sum=1; for(int j=2;j<=i/2;j++) { if(i%j==0) sum=sum+j; } if(sum==i) a.push_back(i); } int n; while(cin>>n) { cout<<n<<":"; for(int i=0;i<a.size();i++) { if(a[i]<=n) cout<<" "<<a[i]; } cout<<endl; } return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。