/* * 若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数,简称完数。 * 例如:6=1+2+3。 * 题目:求1000以内的完全数。 */ public class PerfectNumber { // 数字上限 static Integer limit = 1000; public static void main(String[] args) { System.out.println(limit + "以内的完全数有:"); fun(limit); } public static void fun(Integer limit) { for (int i = 1; i <= limit; i++) { // 定义真因子之和变量 int sum = 0; for (int j = 1; j < i / 2 + 1; j++) { // 如果当前数能被整除 if (i % j == 0) { sum += j; } } // 如果真因子(即除了自身以外的约数)的和恰好等于它本身,说明是完全数。 if (sum == i) { System.out.println(i); } } } }
输出结果:
1000以内的完全数有:
6
28
496