#include<iostream.h>
#include<iomanip.h>
#include<math.h>
void main()
{
int i,j,k,a[1000]={0};
cout<<"1000以内的完数为:"<<endl;
for(int num=4;num<1000;num++)
{
int sum=0,t=0;
k=(int)sqrt(num);
for(j=2;j<=k;j++)
{
if(num%j==0)
{
a[t]=j;
if(j!=(num/j))
{
a[t+1]=num/j;
t=t+2;
}
else
t=t+1;
}
}
for(i=0;i<t+1;i++)
sum=sum+a[i];
if(num==1+sum)
cout<<setw(5)<<num;
}
cout<<endl;
}
只能得出6,看看那里的错~