int num;
num = 0;
for (int i = 1; i < 1000; i++)
{
for (int j = 1; j <= i / 2; j++)
{
if (i % j == 0)
num = num + j;
}
if (num == i)
Console.WriteLine(num);
}
我试着找到1到1000之间的完美数字,我写了这段代码,但它没有用!怎么了?
答案 0 :(得分:3)
正如其他人提到的那样在外部循环中移动num = 0
。
int num;
for (int i = 1; i < 1000; i++)
{
num = 0;
for (int j = 1; j <= i / 2; j++)
{
if (i % j == 0)
{
num = num + j;
}
}
if (num == i)
{
Console.WriteLine(num);
}
}
这将为您提供输出
6 28 496
这是0到1,000之间的完美数字
答案 1 :(得分:1)
移动:
num = 0;
在你的嵌套for循环之上。
像这样:
int num;
for (int i = 1; i < 1000; i++)
{
num = 0;
for (int j = 1; j <= i / 2; j++)
{
if (i % j == 0)
num = num + j;
}
if (num == i)
Console.WriteLine(num);
}