如果一个数的因子和等于本身就是完美的。
不包括本身,所以,1的应该等于0
#include"stdio.h"
#include"string.h"
#include"algorithm"
using namespace std;
#define N 60001
int A[N];
int n;
void init()
{
int i,j;
A[0]=-1;
for(i=1;i<N;i++)
A[i]=1;
A[1]=0;
for(i=2;i<N;i++)
{
for(j=2;j*i<N;j++)
A[j*i]+=i;
}
}
int main()
{
init();
printf("PERFECTION OUTPUT\n");
while(scanf("%d",&n)!=-1)
{
if(n==0)
{
printf("END OF OUTPUT\n");break;
}
if(A[n]==n)printf("%5d PERFECT\n",n);
else if(A[n]<n)printf("%5d DEFICIENT\n",n);
else printf("%5d ABUNDANT\n",n);
}
return 0;
}