CCC加拿大高中生信息学奥赛

其余来源

  CODEVS[3312]——CCC 1996 01 Deficient, Perfect, and Abundant ——http://codevs.cn/problem/3312/

  POJ[1928]——Perfection——http://poj.org/problem?id=1528

CODEVS描述——中文题目

题目描述 Description

读入一个正整数n,判断整数是完数,亏数还是盈数。

•如果它的约数的和等于它本身,那它便是一个完数(Perfect)(约数包含1,但不包含它本身)。

•如果它的约数的和小于它本身,那它便是一个亏数(Deficient)(约数包含1,但不包含它本身)。

•如果它的约数的和大于它本身,那它便是一个盈数(Abundant)(约数包含1,但不包含它本身)。

输入描述 Input Description

输入文件共两行,

第一行为一个正整数n,

第二行为n个正整数,中间用空格隔开。

输出描述 Output Description

输出为n行,分别为第1..n个数的类别。

完数:Perfect

亏数:Deficient

盈数:Abundant

样例输入 Sample Input

3
4 6 12

样例输出 Sample Output

4 is a deficient number.
6 is a perfect number.
12 is an abundant number.

数据范围及提示 Data Size & Hint

1<=n<=2^31-1

POJ描述(英文)

Description

From the article Number Theory in the 1994 Microsoft Encarta: ``If a, b, c are integers such that a = bc, a is called a multiple of b or of c, and b or c is called a divisor or factor of a. If c is not 1/-1, b is called a proper divisor of a. Even integers, which include 0, are multiples of 2, for example, -4, 0, 2, 10; an odd integer is an integer that is not even, for example, -5, 1, 3, 9. A perfect number is a positive integer that is equal to the sum of all its positive, proper divisors; for example, 6, which equals 1 + 2 + 3, and 28, which equals 1 + 2 + 4 + 7 + 14, are perfect numbers. A positive number that is not perfect is imperfect and is deficient or abundant according to whether the sum of its positive, proper divisors is smaller or larger than the number itself. Thus, 9, with proper divisors 1, 3, is deficient; 12, with proper divisors 1, 2, 3, 4, 6, is abundant." 
Given a number, determine if it is perfect, abundant, or deficient. 

Input

A list of N positive integers (none greater than 60,000), with 1 <= N < 100. A 0 will mark the end of the list.

Output

The first line of output should read PERFECTION OUTPUT. The next N lines of output should list for each input integer whether it is perfect, deficient, or abundant, as shown in the example below. Format counts: the echoed integers should be right justified within the first 5 spaces of the output line, followed by two blank spaces, followed by the description of the integer. The final line of output should read END OF OUTPUT.

Sample Input

15 28 6 56 60000 22 496 0

Sample Output

PERFECTION OUTPUT15  DEFICIENT28  PERFECT6  PERFECT56  ABUNDANT
60000  ABUNDANT22  DEFICIENT496  PERFECT
END OF OUTPUT

Source

Mid-Atlantic 1996

思路

  利用数论知识快速计算一个数的约数和,详见程序函数。

样例

  CODEVS:

var t,x:longint;function ans(n:longint):longint;
var i:longint;
beginans:=0;for i:=1 to n dobeginif (i*i=n) thenbeginans:=ans+i;break;end;if (i*i>n) then break;if (n mod i=0) then ans:=ans+i+n div i;end;
end;procedure main;
var anss,n:longint;
beginread(n);anss:=ans(n)-n;if anss<n then writeln(n,' is a deficient number.');if anss=n then writeln(n,' is a perfect number.');if anss>n then writeln(n,' is an abundant number.');
end;beginreadln(t);for x:=1 to t do main;
end.

View Code

  POJ:

var t,x,n:longint;function ans(n:longint):longint;
var i:longint;
beginans:=0;for i:=1 to n dobeginif (i*i=n) thenbeginans:=ans+i;break;end;if (i*i>n) then break;if (n mod i=0) then ans:=ans+i+n div i;end;
end;procedure main;
var anss,x,i:longint;s:ansistring;
beginanss:=ans(n)-n;str(n,s);x:=length(s);for i:=1 to 5-x do write(' ');if anss<n then writeln(n,'  DEFICIENT');if anss=n then writeln(n,'  PERFECT');if anss>n then writeln(n,'  ABUNDANT');
end;beginwriteln('PERFECTION OUTPUT');while true dobeginread(n);if n=0 thenbeginwriteln('END OF OUTPUT');halt;end;main;end;
end.

View Code

转载于:https://www.cnblogs.com/yangqingli/p/4906400.html

[CCC 1996 01]Deficient, Perfect, and Abundant相关推荐

  1. 第01章_Java语言概述

    1. Java知识脉络图 1.1 Java基础全程脉络图 1.2 本章专题与脉络 2. 抽丝剥茧话Java 2.4 软件开发之Java开发 移动应用领域(集成Android平台):Java在Andro ...

  2. Java 基础-01 Java语言入门

    文章目录 Java 基础-01 Java语言入门 1.计算机基本概念 1.1 计算机概述 1.2 计算机组成 1.3 CPU.内存与硬盘 2.软件基本概念 2.1 软件概述 2.2 人机交互方式 2. ...

  3. poj解题报告——poj 1528 Perfection

    原题入口 poj 1528 Perfection 题目描述 Perfection Time Limit: 1000MS Memory Limit: 10000K Total Submissions: ...

  4. 函数式思维: 运用函数式思维,第2 部分

    关于本系列 本系列文章旨在将您的思维方式向函数式思维方式调整,使您以全新的角度来思考常见问题,并提高您的日常编码工作.本系列介绍了函数式编程概念,函数式编程在Java 语言中运行的框架.在JVM 上运 ...

  5. movie_recommendation_spark1

    mllib建立推荐模型 数据准备 数据包含在ml-100k的文件夹中,文件夹中比较重要的几个文件是u.user(用户属性数据集).u.item(电影元数据)和u.data(用户对电影的评分数据) (1 ...

  6. 函数式思维: 为什么函数式编程越来越受关注

    到目前为止,在本系列的每期文章中,我都说明了为什么理解函数式编程非常重要.但是,有些原因是在多期文章中进行说明的,只有在综合思路的更大背景中,才可以完全了解这些原因.在本期文章中,我会探讨函数式编程方 ...

  7. 服务端异步IO配合协程浅析

    服务端异步IO配合协程浅析 代码如下 #coding:utf-8 import socket from selectors import DefaultSelector, EVENT_READ, EV ...

  8. python下使用epoll

    因为最近想学习如何用epoll写服务器, 于是找到了一篇介绍的文章. 因为我最近一直看不进技术文章, 于是打算通过翻译来强迫自己学习. 原文在这里: http://scotdoyle.com/pyth ...

  9. Learning by doing 系列文章(之一)如何在 Python 中使用 epoll ?

    epoll 简介 参见本博前一文<epoll使用详解> Epoll Within Python Python 在 2.6 版中引入了用于处理Linux epoll系统调用的API,本文简单 ...

最新文章

  1. 一文搞懂转置卷积(反卷积)
  2. 【深度学习】深度学习两大基础Tricks:Dropout和BN详解
  3. 1.Lambda表达式(新手写的!新手写的!新手写的!)(未完成)
  4. linux windows爆音,升级Windows 10后 部分情况下有爆音,杂音,音频卡顿现象
  5. netty系列之:一个价值上亿的网站速度优化方案
  6. 10 个实验性的 JS/CSS3 编程技术
  7. 数据科学 IPython 笔记本 9.11 结构化数据:NumPy 的结构化数组
  8. 刚刚,无人驾驶公司Roadstar,发公告把联合创始人开除了
  9. SSH农产品销售系统设计与实现答辩PPT免费下载
  10. 数据科学(data science)概览
  11. throw和throws有什么区别
  12. 传输层协议TCP和UDP分析
  13. python安装sqlalchemy-Python流行ORM框架sqlalchemy安装与使用教程
  14. [Python设计模式] 第25章 联合国维护世界和平——中介者模式
  15. 错误:[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 解决方法_QT
  16. android 音效,音效  |  Android 开源项目  |  Android Open Source Project
  17. java json jar包下载_jsonobject必备jar包
  18. 外设驱动库开发笔记28:W5500以太网控制器
  19. AD域控服务器问题解决记录--lsass.exe流量异常
  20. java操作Excel表格使用EasyExcel

热门文章

  1. Pushed master to new branch origin/master
  2. cad计算机辅助,CAD 计算机辅助.doc
  3. 王者荣耀段位计算器软件
  4. npm安装报no such file or directory原因和解决方法
  5. ThreeJS - 修复摄像机近距离模型或者摄像机在某些观察角度3D模型部分或者全部不可见的问题
  6. unicode gb2312对应表(GB升序)
  7. 软件测试 -- 进阶 8 软件测试流程和过程
  8. C语言:地址传递与传递
  9. 22.11.3打卡 HDU-1069
  10. 优秀笔记课件——Google 及其它搜索引擎的高级使用