d010:盈数、亏数和完全数

题目:

对一个正整数N而言,将它除了本身以外所有的因子加起来的总和为S,如果S>N,则N为盈数,如果S<N,则N为亏数,而如果S=N,则N为完全数(Perfect Number)。例如10的因子有1、2、5、10,1 +2+5=8<10,因此10为亏数,而12的因子有1、2、3、4、6、12,1+2+3+4+6=16>12,因此12为盈数。至于6的因子有1、2、3、6,1+2+3=6,所以6是完全数(它也是第一个完全数)。
现在请你写一个程序,输入一个正整数N,然后印出它是盈数、亏数还是完全数。

所以,这题的思路是:定义s=0.

把这个数和所有小于它的数mod,是0的话s=s+i.

代码:

 1 #include <iostream>
 2 using namespace std;
 3 int main(){
 4     int a,i=1;
 5     while(cin>>a){
 6         int s=0;
 7         for(i=1;i<a;i++){
 8             if(a%i==0) s+=i;
 9         }
10         if(s<i) cout<<"虧數"<<endl;
11         if(s==i) cout<<"完全數"<<endl;
12         if(s>i) cout<<"盈數"<<endl;
13     }
14     return 0;
15 }
时间: 2024-12-17 20:24:43

d010:盈数、亏数和完全数的相关文章

freemarker导出word——让表格数据行数 列数自动变化

行数.列数变化只需定义一个List<List<T>> freemarker遍历的话,只需要使用freemarker的标记性语言<#list report.qc_third_agentTable as  table2_tr>遍历即可,如图 实现的效果 freemarker导出word--让表格数据行数 列数自动变化,布布扣,bubuko.com

fzu Problem 2198 快来快来数一数 (快速幂+优化)

题目链接: Problem  2198  快来快来数一数 题目描述: 给出n个六边形排成一排,a[i]代表i个六边形能组成的生成树个数,设定s[i]等于a[1]+a[2]+a[3]+....+a[i-1]+a[i],问s[n]为多少? 解题思路: n取值范围[1, 1018],打表内存不够,然后就要考虑快速幂咯!纳尼!!!!快速幂写出来竟然超时,敢信?果然还是见题太少了.(GG) 对于a[n] = 6*a[n-1] - a[n-2],可以很明显看出. 然后求和的时候就要化简一番了,但是并不是很难

HDU 1151 Air Raid(最小路径覆盖 = 顶点数 - 最大匹配数)

Air Raid Problem Description Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and walking through town's streets you can never reach the same

HDU 1068 Girls and Boys(最大独立集合 = 顶点数 - 最大匹配数)

HDU 1068 :题目链接 题意:一些男孩和女孩,给出一些人物关系,然后问能找到最多有多少个人都互不认识. 转换一下:就是大家都不认识的人,即最大独立集合 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <math.h> #define init(a) memset(a,

(转载)Catalan数——卡特兰数

Catalan数--卡特兰数 今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来后来查了下,原来是Catalan数.悲剧啊,现在整理一下 一.Catalan数的定义令h(1)=1,Catalan数满足递归式:h(n) = h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1),n>=2该递推关系的解为:h(n) = C(2n-2,n-1)/n,n=1,2,3,...(其中C(2n-2,n-1)表示2n-2个中取n-1个的组合数) 问题描

亚马逊Q1财报转盈为亏,AWS业绩喜人!

4月24日,亚马逊发布了截至3月31日的2015年第一季度财报.财报显示,亚马逊第一季度净营收达到227.2亿美元,比去年同期的197.4亿美元增长了15%:净亏损为5700万美元,每股亏损为12美分,去年同期为净利润1.08亿美元,每股收益为23美分. 这一业绩虽然符合此前分析师的预期,但是在销售额增长的同时,亚马逊在第一季度中却转盈为亏,难免让人有些许失望. 亚马逊给出的解释是该公司仍在针对多个项目投入大量资金,如无人机送货服务和流媒体视频交易以及仓库建设等,成本的增加显然已经影响到了其盈利

一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈

一 群猴子排成一圈,按1,2,…,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的 进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王.要求编程模拟此过程,输入m.n, 输出最后那个大王的编号 <?php //$n猴子个数 $m第几个位置 function fn( $n, $m){ //将猴子数量放到数组内 for($i = 1; $i < $n+1; $i++){ $arr[] = $i; } $i = 0; var_d

Java实现约瑟夫环:50个人围成一圈数数,数到3的人退出,求最后剩下的人的编号

public class Main { public static void main(String[] args) { //50个人,从第一个人开始数,数到3的人出列 countThree(50, 0, 3); } /** * 约瑟夫环:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围. * 从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数, * 数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列. * * @param n 人的总数 * @

约瑟夫环-一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈

一群猴子排成一圈,按1,2,-,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去-,如此不停 的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王.要求编程模拟此过程,输入m.n, 输出最后那个大王的编号(约瑟夫环). function fuhuan($allnum, $ti){ $arr = array(); for($i = 0; $i < $allnum; $i++){ $arr[$i] = $i; } $nums = 1; whi