#include<iostream>usingnamespace std;/*
"完数":如6的因子为1,2,3;6=1+2+3
则6称为完数。
找出1000内的所有完数。
*/intmain(){int n, i, sum;for(n =2; n <=1000; n++){
sum =0;for(i =1; i < n; i++)if(n % i ==0)// 数能被i整除,即为因子
sum += i;if(n == sum){
cout <<"完数"<< n <<"的因子有:";for(i =1; i < n; i++)if(n % i ==0)
cout << i <<" ";
cout << endl;}}return0;}
### 法二
voidmain(){int factors[1000];int i, a, n, s;for(a =2; a <=1000; a ++){
n =0;
s = a;for(i =1; i < a; i++)if((a % i)==0){
n++;
s -= i;//数a依次减去因子,最终所s=0即为完数
factors[n]= i;// 存放因子}if(s ==0){
cout << a <<"的因子有:";for(i =1; i <= n; i++)
cout << factors[i]<<" ";
cout << endl;}}}
1-1000内的“完数”#include <iostream>using namespace std;/* "完数":如6的因子为1,2,3;6=1+2+3 则6称为完数。 找出1000内的所有完数。*/int main(){ int n, i, sum; for (n = 2; n <= 1000; n++) { sum = 0; for (i = 1; i <