我一直在尝试为课堂实验室编写一个程序,我相信我几乎拥有它,但它不会将除数(代码中的 div)加到总和中,如果它是完美的则返回 true数字,否则为假。我的代码编译并运行良好,但只会返回 false,大概是因为 sum 保持在 1(它初始化为 1,因为 1 是每个数字的除数)。number 是从构造函数和 set 语句引入的私有 int。
public boolean isPerfect()
{
int x = number -1 ;
int div = 0;
int sum = 1;
while(x> 1)
{
if(number % x == 0)
{
div = x;
sum=+ div;
}
x--;
}
if(sum == number)
{
return true;
}
else
{
return false;
}
}