[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()系统调用来监视多 ...
随机推荐
- 【python】迭代一列 斐波那契数列
def fabm(n): if n < 1: print('输入不能小于1') return -1 if n == 1 or n == 2: return 1 else: return fabm ...
- android开发两种退出程序方式(killProcess,System.exit)
KillProcess: 在android中我们如果想要程序的进程结束可以这样写: android.os.Process.killProcess(android.os.Process.myPid()) ...
- Call Azure Queue get "The remote server returned an error: (400) Bad Request."
这几天开始研究Windows Azure, 在使用Azure Queue 的时候,CreateInfNotExists 总是抛出异常 "The remote server returned ...
- check whether the crystal report runtime is exists 检查crystalreport运行时是否存在
1. Try Dim rptDoc As New CrystalDecisions.CrystalReports.Engine.ReportClass() Dim rptView As New Cry ...
- 开发软件设计模型 visual studio UML
http://www.ibm.com/developerworks/cn/rational/rationaledge/content/feb05/bell/ http://msdn.microsoft ...
- classes system in sencha touch
//http://www.sencha.com/learn/sencha-class-system var Person = new Ext.Class({ name: 'Mr. Unknown', ...
- 微软Hololens学院教程-Hologram 212-Voice(语音)【微软教程已经更新,本文是老版本】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
- 使用PyInstaller打包Python程序
本文转载自: http://www.pycoding.com/2015/04/23/pyinstaller.html
- cyg_flag 系列函数
http://blog.csdn.net/mrwangwang/article/details/7954236 cyg_flag_init Name: cyg_flag_init ( ) - init ...
- SPRING IN ACTION 第4版笔记-第六章RENDERING WEB VIEWS-002- Spring的JSP标签之form标签(<sf:input><sf:errors><sf:form>)
一. Spring offers two JSP tag libraries to help define the view of your Spring MVC web views. One tag ...