题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
import java.util.ArrayList; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); /** * 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。 * * 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。 * * 例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。 * * 输入n,请输出n以内(含n)完全数的个数。 * * 例如,考虑数字12,它可以被1, 2, 3, 4, 6, 12整除,因此1, 2, 3, 4, 6, 12就是12的约数 */ int n = in.nextInt(); int count = 0; for (int i = 1; i <= n; i++) { ArrayList<Integer> list = new ArrayList<>(); // j不包含其i本身 for (int j = 1; j < i; j++) { if (i % j == 0) { list.add(j); } } int result = 0; for (Integer integer : list) { // 所有约数相加 result += integer; } if (result == i) { count++; } } System.out.println(count); } }