UVALive5429 UVA382 POJ1528 HDU1323 ZOJ1284 Perfection

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

UVALive5429 UVA382 POJ1528 HDU1323 ZOJ1284 Perfection的相关文章

(HDU)1323 --Perfection (完美)

题目链接:http://vjudge.net/problem/HDU-1323 大概就是给你一个数字,让你找出它和自身所有因子和的关系. 这题输出格式很坑爹,PE了好几次,注意"两个空格",最后一行也有换行符. 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <iostream> 5 #include <algorithm> 6 #i

hdu 1323 Perfection

Perfection Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2027    Accepted Submission(s): 1213 Problem Description From the article Number Theory in the 1994 Microsoft Encarta: "If a, b, c are

poj 1528 Perfection

题目链接:http://poj.org/problem?id=1528 题目大意:输入一个数n,然后求出约数的和sum,在与这一个数n进行比较,如果sum>n,则输出ABUNDANT,如果sum=n,则输出PERFECT,否则,输出DEFICIENT! 注意1的结果是DEFICIENT,0的结果是END OF OUTPUT! 1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 int main

POJ1528问题解答

#include <iostream>#include <cstdio>#include <cmath> #include <string>#include <vector>#include<numeric> using namespace std; int main(){ vector<int> inputNums; vector<int> results; while (true) { int num; s

杭电 HDU ACM 1323 Perfection

Perfection Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1912    Accepted Submission(s): 1141 Problem Description From the article Number Theory in the 1994 Microsoft Encarta: "If a, b, c are

CF GYM 100703I Endeavor for perfection

题意:有n个学习领域,每个领域有m个课程,学习第i个领域的第j个课程可以获得sij个技能点,在每个领域中选择一个课程,要求获得的n个技能点的最大值减最小值最小,输出符合要求的策略. 解法:尺取法.将课程的技能点按值进行排序,同时要记录每个值对应的领域,用尺取法选择第一段包含全部领域的区间,区间的边界即为最值,然后将左指针逐步右移,直到出现有的领域没有选课,继续右移右指针,直到结束.当右指针已移到最右的时候需要特判,只移动左指针. 代码: #include<stdio.h> #include&l

a byte of vim -- 学习摘要

说在前面的话 -- a byte of vim 是我见过的最介绍vim 最好的书,想了解强大的vim的人,或者是已经在使用vim而打算进一步了解的人,我感觉都应该看看这个,内容精炼但涵盖很广,--"vim为什么这么强大",当看完这本书时,我想你就能完全的了解了--此外,本书是一英文版,但很简单,学语言的同时学习英语很不多-- 附上最新版的下载链接 http://download.csdn.net/detail/wuzhimang/8933257  ,当然上官网才是硬道理 以下是自己针对

根据76大细分词性对单词进行归组(二)

词性的重要性不言而喻,尤其是对于自然语言处理来说,哪怕就是记单词,根据词性对单词进行归组也是非常有帮助的. superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律.前缀后缀规律.词之间的相似性规律等等. 各大词性及其包括的词: 32.N-COUNT-COLL(可数集合名词) (词数:50) 1 aristocracy army array audience band 2 cast chapter command commission committee 3 co

词组习语3057组

superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律.前缀后缀规律.词之间的相似性规律等等. 1 Anointing of the Sick British English 2 Civvy Street Clerk of the Closet 3 I mean I must say 4 I suppose so I will thank you to do something 5 Incoming mail server Lithium battery 6 M