[CCC 1996 01]Deficient, Perfect, and Abundant
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
Given a number, determine if it is perfect, abundant, or deficient.
Input
Output
Sample Input
15 28 6 56 60000 22 496 0
Sample Output
PERFECTION OUTPUT
15 DEFICIENT
28 PERFECT
6 PERFECT
56 ABUNDANT
60000 ABUNDANT
22 DEFICIENT
496 PERFECT
END OF OUTPUT
Source
思路
利用数论知识快速计算一个数的约数和,详见程序函数。
样例
CODEVS:
var t,x:longint; function ans(n:longint):longint;
var i:longint;
begin
ans:=;
for i:= to n do
begin
if (i*i=n) then
begin
ans:=ans+i;
break;
end;
if (i*i>n) then break;
if (n mod i=) then ans:=ans+i+n div i;
end;
end; procedure main;
var anss,n:longint;
begin
read(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; begin
readln(t);
for x:= to t do main;
end.
POJ:
var t,x,n:longint; function ans(n:longint):longint;
var i:longint;
begin
ans:=;
for i:= to n do
begin
if (i*i=n) then
begin
ans:=ans+i;
break;
end;
if (i*i>n) then break;
if (n mod i=) then ans:=ans+i+n div i;
end;
end; procedure main;
var anss,x,i:longint;s:ansistring;
begin
anss:=ans(n)-n;
str(n,s);
x:=length(s);
for i:= to -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; begin
writeln('PERFECTION OUTPUT');
while true do
begin
read(n);
if n= then
begin
writeln('END OF OUTPUT');
halt;
end;
main;
end;
end.
[CCC 1996 01]Deficient, Perfect, and Abundant的更多相关文章
- HDU1323_Perfection【水题】
Perfection Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- POJ 1528问题描述
Description From the article Number Theory in the 1994 Microsoft Encarta: ``If a, b, c are integers ...
- HDOJ 1323 Perfection(简单题)
Problem Description From the article Number Theory in the 1994 Microsoft Encarta: "If a, b, c a ...
- python开发学习-day10(select/poll/epoll回顾、redis、rabbitmq-pika)
s12-20160319-day10 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- Python框架之Tornado(二)请求阶段
概述 上图是tornado程序启动以及接收到客户端请求后的整个过程,对于整个过程可以分为两大部分: 启动程序阶段,又称为待请求阶段(上图1.2所有系列和3.0) 接收并处理客户端请求阶段(上图3系列) ...
- python之协程与IO操作
协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B ...
- 第二篇:白话tornado源码之待请求阶段
上篇<白话tornado源码之一个脚本引发的血案>用上帝视角多整个框架做了一个概述,同时也看清了web框架的的本质,下面我们从tornado程序的起始来分析其源码. 概述 上图是torna ...
- Python - 异步IO\数据库\队列\缓存
协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程,协程一定是在单线程运行的. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和 ...
- sellect、poll、epoll
http://www.cnblogs.com/alex3714/p/4372426.html select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多 ...
随机推荐
- 建站服务器的最优选择之Windows Or Linux
转载于:http://www.0553114.com/news/detail-702287.html 不管是个人建站,还是中小型企业建站,选择一款合适的主机是站长朋友们共同的心愿.主机是选择Windo ...
- mysqldump备份与还原mysql数据的实例
有关mysql数据库的备份与还原,我们一般用下面两种方式来处理:1.使用into outfile 和 load data infile导入导出备份数据 本文原始链接:http://www.jbxue. ...
- 《Effective Java》读书笔记
一.引言 1.几条基本规则:(清晰性和简洁性最为重要) 模块的用户永远也不应该被模块的行为所迷惑(那样就不清晰了),模块要尽可能小,但又不能太小 代码应该被重用,而不是被拷贝 模块之间的依赖性应该尽可 ...
- mysql 查看数据库大小
select table_schema, concat(truncate(sum(data_length)/1024/1024,2),' mb') as data_size,concat(trunca ...
- [旧博客]Python 第一次
决定学习Python,发现其需要安装的东西很小,只需要在官方网站下载和15MB左右的安装包,Python for windows.安装完毕就双击IDE快捷方式就打开IDE了. 你很发现IDE好像很面熟 ...
- Python设计模式——外观模式
外观模式跟代理模式有点像,都是在client和目标的类之间建一个中间的类,client不直接调用目标的类,而是通过先调用中间类的方法,由中间类来实现怎么调用目标类. 代理模式用这种模式的目的是可以实现 ...
- JAVA技术体系发展路线
JAVA技术体系 1.1 Java程序员 ·高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变参数.可变返回类型.增强循环.静态导入 ·核心编程 IO.多线程.实体类.集合类.正则表达式.XM ...
- 关于Weblogic连接池的TestConnectionOnReserve
由于最近某客户的系统性能比较差,所以今天又上去跟踪了一下.看了一下Default Data Cache,发现已经从10G调整到了20G,所以可以确定应该是客户的管理员已经将双机从低配置的机器切 ...
- JavaScript 找出数组中重复的元素
实现检测数组重复元素的功能,需要注意一点的是,多个(2个或2个以上)重复元素,我们只需要挑出一个来就可以了. <!DOCTYPE html> <html> <head&g ...
- [BZOJ 4103] [Thu Summer Camp 2015] 异或运算 【可持久化Trie】
题目链接:BZOJ - 4103 题目分析 THUSC滚粗之后一直没有写这道题,从来没写过可持久化Trie,发现其实和可持久化线段树都是一样的.嗯,有些东西就是明白得太晚. 首先Orz ZYF-ZYF ...