我想做一个简单的程序来计算完美的数字。我有一个错误
在我的程序,当我运行它,它只能说明:我想做一个简单的程序来计算完美的数字。我有一个错误
0
它应该无限期地运行。 这里是我的代码:
PerfectNumberAlert alert = new PerfectNumberAlert();
alert.show();
boolean per = true;
int numb = 0;
for (int num = 0;; num++)
{
numb = 0;
per = true;
for(int div = 2; div < num; div++)
{
if (num % div == 0)
{
numb += div;
per = false;
break;
}else{
break;
}
}
if (numb == num)
{
System.out.println(num + " is perfect");
}
}
如果有人知道是什么问题,请帮我解决这个问题。
Num为零,因此循环for(int div = 2; div < num; div++)
未启动。
它没有为我工作。 – DanielAllen999 2014-09-11 11:59:57
@ dany123awesome这是什么意思'它不适合我' – Jens 2014-09-11 12:01:01
是否我有一个比num大的整数或不是无关紧要,因为循环以任一方式运行。这可能是一个小故障,但它会运行两个循环。 – DanielAllen999 2014-09-11 19:27:07
num为零且麻木也为零
您的循环中没有。 2它检查时,DIV < NUM那么它将进入循环,但它的div已经是更大然后NUM因此直接进入,如果
if (numb == num)
{
System.out.println(num + " is perfect");
}
,并打印0
为Alexander_Winter
指出,你打破了循环后第一次迭代,不舒服什么是你做白衣旗(布尔)
int numb = 0;
for (int num = 0; num == -1; num++)
{
numb = 0;
for(int div = 1; div < num; div++)
{
if (num % div == 0)
{
numb += div;
}
}
if (numb == num)
{
System.out.println(num + " is perfect");
}
}
根据你的和@ Alexander_Winter的想法尝试了代码:int numb = 0; (int num = 0 ;; num ++) { numb = 0;对于(int div = 2; div
只是为了数学问题的精度,你尝试检查素数。完美的数字是在不同的上下文中定义的。 – apomene 2014-09-11 11:55:19
我已经尝试检查素数,它的工作完美。 – DanielAllen999 2014-09-11 11:58:36
for(int div = 2; div
2014-09-11 11:58:45