【发布时间】:2012-12-11 00:54:34
【问题描述】:
我正在尝试完成一项任务。打印 4 个perfect numbers,它们介于 1 和 10000 之间。
在数论中,完美数是一个正整数,它等于它的适当正因数之和,即不包括数字本身的正因数之和。
这是我的代码:
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
我的代码有什么问题?谢谢。
【问题讨论】:
-
缺少的部分是完美数的定义。在数论中,一个完美数是一个正整数,它等于它的适当正因数之和,即不包括数字本身的它的正因数之和。例如,1 + 2 + 3 = 6;
标签: java perfect-numbers