Java完数问题

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java完数问题相关的知识,希望对你有一定的参考价值。

问题

存在这样的一个数,如果该数的值等于它的因子之和(不包括它本身),该数就称为“特殊数”。例如,6的因子为1、2、3,并且6=1+2+3,因此6就是“特殊数”;28的因子为1、2、4、7、14,并且 28=1+2+4+7+14,所以28是“特殊数”。找出1000以内的所有完数。

方法

public class Complete_number 
   public static void main(String [] args) 
       for(int i = 1;i<=1000;i++) 
           int num = 0;
           for(int j = 1;j<i;j++) 
               if(i%j == 0) 
                   num += j;
               
           
           if(i == num) 
               System.out.println(i+"是完数");
           
       

   

结语

针对完数问题,我们采用循环的方式来进行解决,先找出这个数的全部因子,然后加起来和这个数比较,如果相等即证明这个数是完数。注意别把这个数本身算进去。

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

java_完数

Java50道经典习题-程序9 求完数

Java用数据结构解决实现问题之数学问题

JAVA编程-------------9查找1000以内的完数

Java编程找出1000以内的所有完数。

Java完数问题