382 Perfection

题目大意
题目原文 http://uva.onlinejudge.org/external/3/382.pdf

一个数的因子之和大于它本身则输出“ABUNDANT”;小于它本身则输出“DEFICIENT”;等于则输出“PERFECT”;
由于题目只要求到60000,且不超过100个测试数据,只需要用穷举法即可;多注意题目的格式要就可以AC了。

附上代码:

View Code
 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 }
原文地址:https://www.cnblogs.com/syiml/p/2909882.html