题目:完全数、盈数、不足数的判断。
分析:简单题。安定义计算即可,利用不超过自己的所有正因数的和与自己判断。
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int n;
printf("PERFECTION OUTPUT\n");
while ( scanf("%d",&n) && n ) {
int s = (int)sqrt(n+0.0);
int sum = 1;
for ( int i = 2 ; i <= s ; ++ i )
if ( n%i == 0 )
sum += i+n/i;
if ( n == s*s )
sum -= s;
printf("%5d ",n);
if ( sum == n )
printf("PERFECT\n");
if ( sum > n )
printf("ABUNDANT\n");
if ( sum < n )
printf("DEFICIENT\n");
}
printf("END OF OUTPUT\n");
return 0;
}