Closed. This question is not reproducible or was caused by typos。它当前不接受答案。












想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。

4年前关闭。





我目前正在研究Java代码,该代码将允许我打印出所有低于10,000的完美数字。我的问题是我无法弄清楚为什么我的代码不打印6,而是打印所有其他完美数字。我的代码在下面,如果您可以看到我所浏览的内容,请发送帮助。谢谢,

int min = 1;
int max = 10000;

for (min = 1; min <= max; min++) {
    int sum = 0;
    int e = 1;
    for (e = 1; e < min; e++) {
        int a = min % e;

        if (a == 0) {
            sum += e;
        }
    }
    if (sum == min){
        System.out.println(sum);
    }
}

最佳答案

您的解决方案应该可以,但是如果仍然有问题,请尝试清除然后重新构建。

我下面列出的代码得到正确的答案:

public static void main(String[] args){
    int min = 1;
    int max = 10000;

    for (min = 1; min <= max; min++) {
        int sum = 0;
        for (int e = 1; e < min; e++) {
            if ((min % e) == 0) {
                sum += e;
            }
        }
        if (sum == min){
            System.out.println(sum);
        }
    }
}

09-11 17:56