d010:盈数亏数和完全数

Posted 哈哈屠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于d010:盈数亏数和完全数的主要内容,如果未能解决你的问题,请参考以下文章

算法15---数论1---完全数

求水仙花数和完数

题目1060:完数VS盈数------这题做得我想骂人

九度oj 题目1060:完数VS盈数

完数与盈数

2018-2019-2 20175310 个人项目报告2--完全数