ACM&完数

完数

题目描述:

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

输入:

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

输出:

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

样例输入:
6
样例输出:
6
http://ac.jobdu.com/problem.php?pid=1050
main.cpp
 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int n, i, j, sum,tag;
 8     while(cin>>n) {
 9         tag=0;
10         for(i=6; i<=n; i++) {
11             sum=0;
12             for(j=1; j<=(i/2)&&sum<=i; j++) 
13                 if(i%j==0) sum+=j;
14             if(sum==i){
15                 if(tag==0) {cout<<i; tag=1;}
16                 else cout<<" "<<i;
17             }
18         }
19         cout<<endl;
20     }
21     return 0;
22 }

 

posted on 2013-03-12 23:21  Zachary_wiz  阅读(386)  评论(0编辑  收藏  举报

导航