21xrx.com
2025-04-03 06:24:11 Thursday
文章检索 我的文章 写文章
如何用Java编写求完数的程序
2023-06-17 05:11:05 深夜i     11     0
完数 Java代码 循环和判断

完数,也就是所有因子之和等于自身的正整数,比如6就是一个完数,因为6的因子有1、2、3,它们之和正好等于6。如果你想在Java中实现一个求完数的程序,就需要用到循环和判断语句。下面我们就来一步步地实现这个程序。

首先,定义一个整型变量n,表示我们要求的完数范围,同时定义一个整型变量sum,用于存储当前处理的数字的因子之和。然后用for循环执行n次,每次判断当前处理的数字是否为完数。具体实现思路如下:

- 在for循环中每次取一个数字i,从2到i的开方+1循环判断i是否为n的因子,如果是,则将其加到sum中;

- 判断sum是否等于i,如果相等,则i是一个完数,将i输出。

根据上述思路,我们可以用Java代码实现一个求完数的程序,具体代码如下:

import java.util.Scanner;
public class PerfectNumber {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print("请输入要查找的完数范围:");
    int n = scan.nextInt();
    for (int i = 2; i <= n; i++) {
      int sum = 1; // 因子之和至少为1
      for (int j = 2; j <= Math.sqrt(i); j++) {
        if (i % j == 0) {
          sum += j;
          if (j != i / j) {
            sum += i / j;
          }
        }
      }
      if (sum == i) {
        System.out.println(i + "是一个完数");
      }
    }
    scan.close();
  }
}

运行上述程序,输入一个正整数n,即可打印出从2到n之间的所有完数。

  
  

评论区