私はクラスのラボ用に書かれたプログラムを取得しようとしてきましたが、ほぼそれを持っていると思いますが、除数 (コード内の div) を合計に加算せず、完全な場合は true を返します。番号、それ以外の場合は false。私のコードはコンパイルして正常に実行されますが、おそらく sum が 1 のままであるため、false のみが返されます (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;
}
}