题目大意
题目原文 http://uva.onlinejudge.org/external/3/382.pdf
一个数的因子之和大于它本身则输出“ABUNDANT”;小于它本身则输出“DEFICIENT”;等于则输出“PERFECT”;
由于题目只要求到60000,且不超过100个测试数据,只需要用穷举法即可;多注意题目的格式要就可以AC了。
附上代码:

1 #include<stdio.h> 2 int main() 3 { 4 long a,b,s,i; 5 printf("PERFECTION OUTPUT\n"); 6 while(1) 7 { 8 scanf("%d",&a); 9 if(a==0) break;//以0为结束标志 10 b=a/2; 11 printf("%5d ",a);//符合格式 12 s=0; 13 for(i=1;i<=b;i++)//穷举法计算所有因子的和 14 { 15 if(a%i==0) s+=i; 16 } 17 if(s>a) printf("ABUNDANT\n");//输出 18 else if(s==a) printf("PERFECT\n"); 19 else printf("DEFICIENT\n"); 20 } 21 printf("END OF OUTPUT\n");//结束时输出最后一句 22 return 0; 23 }