题解 | #完全数计算#--遍历找出除其本身的所有因子
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int count = 0;
if (num < 4) {
System.out.println(count);
} else {
// 判断是否是完美数
for (int i = 4; i <= num; i++) {
if (isPerfectNum(i)) {
count++;
}
}
System.out.println(count);
}
}
private static boolean isPerfectNum(int num) {
List<Integer> factors = new ArrayList<>();
// 找出除其本身的所有因子
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
factors.add(i);
}
}
int sum = factors.stream().reduce(Integer :: sum).get();
if (sum == num) {
return true;
}
return false;
}
}