用C++写了一个#includeusing namespace std;int main(){ int m,s,i; for(m=2;m<1000;m++) //定义了查找的范围,明显的1和0不是 {s=0;
//先赋值因子的和为0for(i=1;i<m;i++){ if((m%i)==0)//求出m所有因子
s=s+i;//把所有m的因子相加}if(m==s)
//如果m=他所有因子的和{ cout<<m<<"是完数"<<endl; //就是完数 cout<<"its factors are:"; for(i=1;i<m;i++)//这里求完数的因子
if(m%i==0)
cout<void main()
{
int i,j,m,s,k,a[100];
for(i=1;i<=1000;i++)
{
m=i;
s=0;
k=0;
for(j=1;j<m;j++)
if(m%j==0)
{
s=s+j;
a[k++]=j;
}
if(i==s)
{
printf("%d",a[0]);
for(j=1;j<k;j++)
{
printf("+%d",a[j]);
}
printf("=%d\n",i);
printf("\n");
}
} } |