寻找10000以下完美数字的Java程序

寻找10000以下完美数字的Java程序,java,perfect-numbers,Java,Perfect Numbers,我目前正在编写java代码,它允许我打印出10000以下的所有完美数字。我的问题是,我不明白为什么我的代码不打印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

我目前正在编写java代码,它允许我打印出10000以下的所有完美数字。我的问题是,我不明白为什么我的代码不打印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);
    }         
}     
intmin=1;
int max=10000;

对于(min=1;min您的解决方案应该可以,但如果仍然有问题,请尝试清除,然后重建

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

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);
        }          
    }      
} 
publicstaticvoidmain(字符串[]args){
int min=1;
int max=10000;

对于(min=1;min程序正在我的机器上打印6当我运行时,我得到的代码输出是6,28,496,8128,它没有给我任何你所说的行为。我会给你一个建议,将内环条件改为
e@singhakash如果你在谈论效率,你应该在那里使用平方根…感谢大家的快速跟进,我重复我发现我要找的6被放在一个整数后面,这个整数是在我之前打印的,因为我没有让我的打印函数移到下一行。再次感谢!谢谢!我是个白痴,我的6被“添加”到一个打印的整数中,这个整数是在程序的这一部分之前打印的。