水题, 注意输出格式。
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <iostream>
#include <algorithm>
#define mem(a) memset(a, 0, sizeof(a))
using namespace std;
int num[105];
int main()
{
int i, j, w = 0, sum;
mem(num);
while(scanf("%d", &num[w]))
{
if(num[w] == 0)
break;
w++;
}
printf("PERFECTION OUTPUT\n");
for(i = 0;i < w;i++)
{
sum = 0;
for(j = 1;j <= (num[i] / 2);j++)
{
if((num[i] % j) == 0)
sum += j;
}
if(sum == num[i])
{
printf("%5d PERFECT\n", num[i]);
}
else if(sum < num[i])
{
printf("%5d DEFICIENT\n", num[i]);
}
else
{
printf("%5d ABUNDANT\n", num[i]);
}
}
printf("END OF OUTPUT\n");
return 0;
}