java 求两数间完数 为什么条件满足输出不料NIL?

图片说明

1
6
6
1
7
4
8
1
16
1
10
9
15
1
21
1
22
11
14
1
36
6
16
13
28
28
1
42
1
31
15
20
13
55
1
22
17
50
1
54
1
40
33
26
1
76
8
43
1
3
1

输出的,有一个满足的?

 public class CsdnTestDemo {


    private static void sum(int a,int b){
        int sum=0;
        int count = 0;
        for(int i=a;i>=a&&i<=b;i++){
            for(int h=1;h<i;h++){
                if(i%h==0){
                    sum=sum+h;
                }
            }
            if(sum==i){
                count++;
                if(count==1){
                    System.out.println(i);
                }else{
                    System.out.println(" "+i);
                }
            }
            System.out.println(sum);
            if(sum==0){
                System.out.println("NIL");
            }
            sum=0;

        }
    }


    public static void main(String[] args) {
        sum(5,50);
        sum(3,5);
    }
}

http://blog.csdn.net/lwcumt/article/details/8025714