21xrx.com
2024-11-05 19:38:29 Tuesday
登录
文章检索 我的文章 写文章
Java实现完数计算
2023-07-05 03:06:11 深夜i     --     --
Java 完数 计算

完数是指一个正整数,它的所有因子(包括1但不包括它本身)之和等于该数本身,例如6是一个完数,它的因子有1、2、3,而1+2+3=6。Java程序可以实现完数的计算。

实现的方法是,首先循环从2开始到指定的正整数n,对于每个数i,计算它的因子,并把这些因子加起来。如果加起来的和等于i,就表示i是一个完数,输出它的值即可。

下面是Java实现完数计算的代码示例:


import java.util.ArrayList;

public class PerfectNumber {

  public static void main(String[] args) {

   int n = 10000;

   ArrayList<Integer> perfectNums = new ArrayList<Integer>();

   for (int i = 2; i <= n; i++) {

     int sum = 1;

     for (int j = 2; j <= i / 2; j++) {

      if (i % j == 0) {

        sum += j;

      }

     }

     if (sum == i) {

      perfectNums.add(i);

     }

   }

   System.out.println("The perfect numbers from 2 to " + n + " are:");

   for (int num : perfectNums) {

     System.out.print(num + " ");

   }

  }

}

这个程序中,我们从2开始循环到10000,对于每个数i,又从2到i/2循环检查它是否是i的因子。如果是,就把这个因子加到sum中,循环完后就得到了所有因子的和。如果sum等于i,就表示i是一个完数,把它加到一个ArrayList中。

最后,我们遍历这个ArrayList,输出所有的完数。这个程序的输出结果如下:


The perfect numbers from 2 to 10000 are:

6 28 496 8128

这里只有4个完数,因为完数很少,最大的已知完数也只有33位。需要注意的是,当待计算的正整数n较大时,运算量会比较大,程序的运行时间可能会比较长。可以考虑使用多线程等方法进行优化。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复