1247.cpp
来自「哈尔滨工业大学ACM 竞赛网上在线试题集锦的源代码」· C++ 代码 · 共 55 行
CPP
55 行
/* This Code is Submitted by wywcgs for Problem 1247 on 2005-10-02 at 16:36:29 */
#include <cstdio>
#include <cmath>
#define MAX 60001
int main()
{
bool prime[MAX] = {false};
int i, j;
int n, sum, m;
prime[0] = true;
for(i = 2; i < MAX; i++) {
if(!prime[i]) {
for(j = 2; i * j < MAX; j++) {
prime[i*j] = true;
}
}
}
printf("PERFECTION OUTPUT\n");
while(scanf("%d", &n) == 1) {
if(n == 0) {
break;
} else {
if(!prime[n]) {
printf("%5d DEFICIENT\n", n);
} else {
sum = n - 1;
m = (int)sqrt(n);
for(i = 2; i <= m; i++) {
if(n % i == 0) {
sum -= i;
if(i * i != n) {
sum -= n / i;
}
if(sum < 0) {
break;
}
}
}
if(sum > 0) {
printf("%5d DEFICIENT\n", n);
} else if(sum == 0) {
printf("%5d PERFECT\n", n);
} else {
printf("%5d ABUNDANT\n", n);
}
}
}
}
printf("END OF OUTPUT\n");
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?