One exercise ask me to write a program to check whether a number is perfect number?
Here is my work
private static void getPerfectNumber(int perfectNumber) {
if (testPerfectNumber(perfectNumber)) {
System.out.println("true");
} else {
System.out.println("false");
}
}
private static boolean testPerfectNumber(int perfectNumber) {
int acc = 0; // Accumulate
for (int i = 1; i < perfectNumber - 1; i++) {
if (perfectNumber % i == 0) {
acc += i;
}
}
if (testTotal(perfectNumber, acc)) {
return true;
}
return false;
}
private static boolean testTotal(int perfectNumber, int acc) {
if (perfectNumber == acc) {
return true;
}
return false;
}
public static void main(String[] args) {
int perfectNumber; //A positive integer number
Scanner kb = new Scanner(System.in);
perfectNumber = kb.nextInt();
getPerfectNumber(perfectNumber);
}
I also find out that there is no odd perfect number. L^o^L