判断一个整数是否是完全数;完全数是指:所有因子(包括1,不包括本身)的和等于该数本身。然后在main方法中输出100以内所有完全数。

运行结果是空白

public class work6 {
    
      static boolean isWan(int i) {//i为完全数
        int count = 1;//完全数的定义
        for(i = 2;i<1000;i++){
            for(int j=2;j<=i/2;j++)//小于等于i/2,每个整数的最大因子不超过它的一半
            {
                if(i%j==0){//如果被整除,说明j是i的因子
                    count =count + j;//因子累加
                }
            }
        }
        if(i==count) {//判断当前数和其所有因子和是否相等
            return true;//如果相等,就是
        }
        return false;
    }

    public static void main(String[] args) {
        for(int a=1;a<100;a++) {
            if(isWan(a)) {
                System.out.println(a);
            }
            else break;
        }

    }

}

iswan方法中i是传入的参数,那后面的for循环就不应该把i放入其中,i++这样累加就破坏了原来的值。
if(i==count) 的时候 i已经变了,结果自然不对。
写了一个,你参考下

public class Test {
    public static boolean isWan(int n) {
        int sum = 0;
        for (int i = 1; i <= n / 2; i++) {
            //是因子,累加
            if (n % i == 0) {
                sum = sum + i;
            }
        }
        //满足完全数的定义返回true,否则返回false
        if (sum == n) {
            return true;
        } else {
            return false;
        }
    }

    public static void main(String[] args) {
        for (int i = 1; i <= 100; i++) {
            if (isWan(i)) {
                System.out.println(i);
            }
        }
    }
}


static boolean isWan(int num) {
    int count = 1;
    for(int j=2;j<=num/2;j++)
    {
        if(num%j==0){
            count += + j;
        }
    }
    if(num==count) {
        return true;
    }
    return false;
}

public static void main(String[] args) {
    for(int a=1;a<100;a++) {
        if(isWan(a)) {
            System.out.println(a);
        }
    }
}

1不是,就break了