题目:一个数如果恰好等于他的因子之和(包括1,但不包括这个数),这个数就是完数。编写算法找出1000之内的所有完数,并按下面格式输出其因子:28 it's factors are 1,2,4,7,14
代码如下:
#include<iostream>
using namespace std;
bool isWanShu(int n){
int a[100],cnt=0;
int sum=0;
for(int i=1;i<n;i++){
if(n%i==0){
a[cnt++]=i;
sum+=i;
}
}
if(sum==n){
cout<<n<<" it's factors are ";
for(int i=0;i<cnt;i++){
if(i!=cnt-1){
cout<<a[i]<<',';
}else{
cout<<a[i]<<endl;
}
}
}
}
int main(){
for(int i=1;i<=1000;i++){
isWanShu(i);
}
return 0;
}