Regionals 1996 >> North America - Mid-Atlantic USA
问题链接:UVALive5429 UVA382 POJ1528 HDU1323 ZOJ1284 Perfection。入门练习题,用C语言编写程序。
一个数的真因数之和等于本身的数称为完美数。例如6=1+2+3,6是完美数。
题意简述:输入若干个整数n,n=0结束,计算真因数之和。若真因数之和,等于n则输出PERFECT,大于n则输出ABUNDANT,小于n则输出DEFICIENT。
问题分析:用试探法计算所有因数之和。需要注意n=1的情况。
程序中编写函数getsum()用于计算因数之和。
AC的C语言程序如下:
/* UVALive5429 UVA382 POJ1528 HDU1323 ZOJ1284 Perfection */ #include <stdio.h> #include <math.h> int getsum(int n) { int i, sum=1; for(i=2; i<n; i++) { if(n % i == 0) sum += i; } return sum; } int main(void) { int n, sum; printf("PERFECTION OUTPUT\n"); while(scanf("%d", &n) != EOF && n != 0) { if(n == 1) printf("%5d DEFICIENT\n", n); else { sum = getsum(n); if(sum<n) printf("%5d DEFICIENT\n", n); else if(sum==n) printf("%5d PERFECT\n", n); else printf("%5d ABUNDANT\n", n); } } printf("END OF OUTPUT\n"); return 0; }
时间: 2024-10-05 13:11:58