如果一个自然数的所有小于自身的因子之和等于该数,则称为完数。
设计算法,打印1-9999之间的所有完数。
思路:完数6=1+2+3 符合这个条件即为完数。
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 9999; i++) { //题目要求1-9999之间的完数
int ans = 0; //统计 和
for (int j = 1; j < i; j++) {
if (i % j == 0) {
ans += j; //6=1+2+3 应该能明白??
}
}
if (ans == i) { //如果是循环体内的数字,输出
System.out.println(ans);
}
}
}
}