我正在尝试创建一个程序,可以显示输入是否为完美数,即除该数本身外的所有因子之和等于该数。 除了返回值以外,我的程序已经可以工作了。 如果因子之和等于输入的数字,则我想返回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语句。然而,当发生这种情况时,它不会返回任何内容,并声明方法返回未被使用。