21xrx.com
2025-03-24 14:29:26 Monday
文章检索 我的文章 写文章
Java中如何求完数?
2023-06-15 07:34:03 深夜i     14     0
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)。

  
  

评论区

    相似文章
请求出错了