判断一个数是否为“完数”

1 问题

如何利用Java判断一个数是否为“完数”?

2 方法

1、需要了解什么是完数,即完数数的概念。完数即完全数,又称完美数或完备数,是一些特殊的自然数。它所有的真因子的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。 第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。

如果一个数恰好等于它的因子之和,则称该数为"完全数"。各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数。

例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。第三个完全数是496,有约数1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9个数相加,1+2+4+8+16+31+62+124+248=496。后面的完全数还有8128、33550336等等。

2、for循环的语句实现功能

3、输出n,最后调整样式。

代码清单 1

package exprience;
//判断一个数是否为完数
import java.util.Scanner;
public class Forweek {
   public static void main(String[] args) {
       System.out.println("请输入一个数字:");
       Scanner a=new Scanner(System.in);
       int num=a.nextInt();
       int sum=0;
       for(int i=1;i<num;i++){
           if((num%i)==0){
               sum=sum+i;
           }
           else{
               sum=sum;
           }
       }
       if(sum==num){
           System.out.println(num+"是一个完数");
       }
       else{
           System.out.println(num+"不是一个完数");
       }
   }
}

3 结语

以上是关于如何使用Java判断一个数是否为完数的方法,针对判断完数的问题,运用java的分支结构语句、循环结构语句,通过几次实验改进,完善程序,证明该方法是有效的,此代码还有其他while循环打印方法,此程序还有更多方法待试验。

扫描二维码关注公众号,回复: 17411040 查看本文章

猜你喜欢

转载自blog.csdn.net/gschen_cn/article/details/142892103