一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:
6,its factors are 1, 2, 3
#include <iostream>
using namespace std;
int main ()
{
int k[11];
int i,a,n,s;
for(a=2;a<=1000;a++)//a是要找的完数
{
n=0;//因子的个数
s=a;
for(i=1;i<a;i++)
if((a%i)==0)
{
n++;
s=s-i;//因为i就是为a也就是s的因子,如果每次减去一个因子,最后刚好为0,则说明它是完数。
k[n]=i; //将找到的因子赋给k[1],....k[10]
}
if(s==0)
{
cout<<a<<"is a 完数"<<endl;
cout<<"its factors are:";
for(i=1;i<n;i++)
cout<<k[i]<<",";
cout<<k[n]<<endl;
}
}
return 0;
}