题目大意:
判断一个数是否等于它所有因子的总和,如果小于,则是DEFICIENT,如果等于,则是PERFECT,如果大于,则是ABUNDANT。
解题思路:
没什么好讲的,把这个数的所有因子加起来,判断就可以了。
代码如下:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int num[105];
int i=1;
int j;
int count;
int sum;
while(scanf("%d",&num[i])!=EOF&&(num[i]))
{
i++;
}
count=i-1;
printf("PERFECTION OUTPUT\n");
for(i=1;i<=count;i++)
{
sum=0;
for(j=1;j*2<=num[i];j++)
{
if(!(num[i]%j))
{
sum=sum+j;
}
}
if(sum<num[i])
{
printf("%5d DEFICIENT\n",num[i]);
}
else if(sum==num[i])
{
printf("%5d PERFECT\n",num[i]);
}
else
{
printf("%5d ABUNDANT\n",num[i]);
}
}
printf("END OF OUTPUT\n");
return 0;
}