Java 介于1和1000之间的完全数

Java 介于1和1000之间的完全数,java,perfect-numbers,Java,Perfect Numbers,我试图找到介于1和1000之间的完美数字,我写了这段代码,但没有成功! 怎么了 public class Perfect { public static void main(String[]args) { int sum=0; for (int n = 1; n < 1000; n++) { for (int j = 1; j < n/2 ; j++) { if (n % j == 0)

我试图找到介于1和1000之间的完美数字,我写了这段代码,但没有成功! 怎么了

public class Perfect {
    public static void main(String[]args) {
        int sum=0;
        for (int n = 1; n < 1000; n++) {
            for (int j = 1; j < n/2 ; j++) {
                if (n % j == 0)
                    sum = sum + j;
            }
            if (sum == n) {
                System.out.println(sum);
            }
        }
    }
}
公共类完美{
公共静态void main(字符串[]args){
整数和=0;
对于(int n=1;n<1000;n++){
对于(int j=1;j
sum
的声明(更重要的是初始化)移动到
for
循环中。此外,您还需要测试什么不起作用?您从不重置
sum
的值,因此在每次迭代中,它都以其先前的值开始。从一开始,您的条件
j
就不会起作用true@DavidWallace谢谢编辑。实际上,你得到6,28和496。
for (int n = 1; n < 1000; n++) {
  int sum = 0;
  for (int j = 1; j <= n / 2; j++) {