私は仕事を成し遂げようとしています。1から10000までの4つの完全数を印刷します。
数論では、完全数は、適切な正の約数の合計、つまり、数自体を除いた正の約数の合計に等しい正の整数です。
これが私のコードです:
public class PerfectNumbers
{
public static void main(String[] args)
{
// Perfect numbers!
for (int number = 1; number < 10000; number++)
{
int sum = 0;
int i = 1;
while (i < number)
{
if (number % i == 0)
{
sum += i;
i++;
}
else
{
i++;
continue;
}
if (sum == number)
{
System.out.println(number);
}
else
{
continue;
}
}
}
}
}
出力は次のとおりです。
6
24 <--- This one is wrong because next must be 28.
28
496
2016
8128
8190
私のコードの何が問題になっていますか?ありがとうございました。