我目前正在处理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);
}
}
答案 0 :(得分:1)
您的解决方案应该没问题,但如果仍有问题,请尝试清除然后重建。
下面列出的代码会得到正确的答案:
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);
}
}
}