//题目:一个数如果恰好等于它的因子(包括1,不包括本身)之和,这个数就称为"完数"。
//例如6是一个完数,因为6=1+2+3.编程找出10000以内的所有完数。
public class Demo3 {
public static void main(String[] args) {
for (int i = 1; i <= 10000; i++) {
if (isWanShu(i)) { //如果是完数,就打印
System.out.println(i);
}
}
}
// 以下是判断给定整数是否是完数的方法,如果是,返回true,不是则返回false。
private static boolean isWanShu(int n) {
boolean flag = false;
int sum = 0;
for (int i = 1; i <= n / 2; i++) {
if (n % i == 0) {
sum += i; // 各因子累加
}
}
if (sum == n) { // 判断累加结果是否等于该数本身
flag = true;
}
return flag;
}
}
|
|