21xrx.com
2024-12-22 22:47:19 Sunday
登录
文章检索 我的文章 写文章
Java中如何求完数?
2023-06-15 07:34:03 深夜i     --     --
Java编程 完数 因数

完数是指一个数所有的因数(除本身以外)的和等于它本身的正整数。比如6就是一种完数,因为6的因数有1、2、3,而1+2+3=6。那么在Java中,如何通过编程来求完数呢?

我们可以先用一个for循环来遍历每一个数字,然后再用另一个for循环来找到这个数字的因数,并将这些因数相加,最后判断是否等于这个数字本身即可。代码如下:


public class PerfectNumber {

  public static void main(String[] args) {

    for (int i = 1; i <= 1000; i++) {

      int sum = 0;

      for (int j = 1; j < i; j++) {

        if (i % j == 0) {

          sum += j;

        }

      }

      if (sum == i) {

        System.out.println(i + "是一个完数");

      }

    }

  }

}

上面的代码中,我们让i从1循环到1000,对于每一个i,都用一个sum来记录它的因数之和。然后让j从1循环到i-1,对于每个j,如果i能整除j,那么就将j加到sum上。最后再将sum和i进行比较,如果相等,则输出i的值,并提示它是一个完数。

除了以上的求解方法,还可以通过改变循环的范围和步长来提高效率,比如只需要遍历到sqrt(i)就可以了,因为一个数的因数必定是成对出现的,而其中较小的数一定小于等于sqrt(i)。

  
  

评论区

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