Я пытаюсь создать программу, которая будет показывать, является ли ввод идеальным числом, означающим, что факторы (не включая число) складываются так, чтобы они совпадали с этим числом.
Я получил это работает, кроме возвращаемого значения.
Я хочу вернуть значение true, если сумма факторов равна введенному числу, однако он просто не будет этого делать.
Я попытался переместить оператор if по всему коду, и он нигде не работает.
public class Main {
public static void main(String[] args) {
isPerfectNumber(28);
}
public static boolean isPerfectNumber(int number) {
if (number < 1) {
return false;
}
int numberToTest = 1;
int sumOfFactors = 0;
while (numberToTest < number) {
if (number % numberToTest == 0) {
sumOfFactors += numberToTest;
}
numberToTest++;
}
if (sumOfFactors == number) {
return true;
}else{
return false;
}
}
}
Я ожидаю, что когда код увидит, что sumOfFactors будет иметь сумму = к введенному числу, и тогда я получу утверждение true, однако, когда это происходит, оно не возвращает true. Фактически, он ничего не возвращает и утверждает, что возвращаемые методы не использовались.