首页 >

JAVA中,求输入一个正整数,判断其是否是一个完美数,用while循环怎么做最简洁? – 网络|

系统进不去怎么分区,remoting怎么读,webcms是什么JAVA中,求输入一个正整数,判断其是否是一个完美数,用while循环怎么做最简洁? - 网络|JAVA中,求输入一个正整数,判断其是否是一个完美数,用while循环怎么做最简洁

完美数概念

首先你得了解什么叫”完美数“。一个数如果恰好等于除其本身外所有因子之和,这个数就称为“完美数”。例如6=1+2+3.编程找出10000以内的所有完数。所以1不算,循环的话就得从1开始;

解题思路

从1开始至目标数减1进行循环,逐一去判断循环数是否为目标数的因子,若是,则加总至和,最后所有数都比较完,再对和和目标数进行相等判断,如果和等于目标数,则是完美数,否则不是;

实现

小编用C++的方式来实现,因为手边没有好的Java的IDE,就这个问题,主要牵涉到的就是循环逻辑处理,跟语言没多大关系,所以C++你也能看得懂。

while循环实现

inttarget_num=6;//换成你要输入的数

intsum=0;//用来累加因子的和

inti=1;

while(i<target_num)

{

i++;

//判断i是否为目标数target_num的因子若是因子则目标是可以被整除

if(target_num%i==0)sum+=i;累积因子和

}

if(sum==target_num)cout<<“是完美数”<<endl;

elsecout<<“不是完美数”<<endl;

for循环实现

inttarget_num=6;//换成你要输入的数

intsum=0;用来累加因子的和

for(inti=1;i<target_num;i++)

{

//判断i是否为目标数target_num的因子若是因子则目标是可以被整除

if(target_num%i==0)sum+=i;//累积因子和

}

if(sum==target_num)cout<<“是完美数”<<endl;

elsecout<<“不是完美数”<<endl;

总结

其实完美数判断起来还是比较简单的,while循环在简洁和效率上都是不如for循环的。虽然你的问题是while怎么实现,但是建议用for循环。


JAVA中,求输入一个正整数,判断其是否是一个完美数,用while循环怎么做最简洁? - 网络|
  • excel中,如何在一格中显示计算式,在另一格直接显示结果? - 网络|
  • excel中,如何在一格中显示计算式,在另一格直接显示结果? - 网络| | excel中,如何在一格中显示计算式,在另一格直接显示结果? - 网络| ...

    JAVA中,求输入一个正整数,判断其是否是一个完美数,用while循环怎么做最简洁? - 网络|
  • mysql数据三表查询题 |mysql事件调度器event
  • mysql数据三表查询题 |mysql事件调度器event | mysql数据三表查询题 |mysql事件调度器event ...