1.代码实现:
/**
* 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。
* 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
* 如果一个数恰好等于它的因子之和,则称该数为“完全数”。
* 例如:6=1+2+3;
* 28=1+2+3+4+5+6+7
*/
public static void main(String[] args) {
int i, j;
int sum;
//指定范围
for (i = 2; i < 1000; i++) {
sum = 0;
//被除数范围
for (j = 1; j <= i / 2; j++) {
//整数因子
if (i % j == 0) {
sum += j;
}
}
//完全数判断
if (sum == i) {
print(i);
}
}
}
//打印因子
private static void print(int n) {
System.out.println(n + "的约数(除自身外)");
for (int i = 1; i <= n / 2; i++) {
if (n % i == 0) {
System.out.print(i + " ");
}
}
System.out.println();
}
2.测试结果:
