双重for循环不能正常循环

问题
如果一个数恰好等于它的因子之和,则称这个数为完数,编谢程序求一千以内的完数;
我的代码
public class Text3_5_4
{
public static void main(String arg[])
{
int j, n=1000;
for(int i=1;i<=1000;i++)
{
int k=0;
for(j=1;j
{
if(i%j==0)
{
k=k+j;
}
if(k==i)
System.out.println(i+"是完数");
}
}
System.out.println("2022.9.18林峰");
}
}

输出结果
1是完数
2是完数
3是完数
4是完数
5是完数
6是完数
7是完数
8是完数
9是完数
10是完数
11是完数
12是完数
13是完数
14是完数
15是完数
16是完数
17是完数

问题
双重for循环,j循环不能正常循环,用断点测试,发现 j 始终和 i 保持一致,代码可以运行,但是运行不出正确结果

目的
我想知道这个代码的错误点,为什么for循环不能正常循环

for(j=1;j<i;j++); 后面的分号删掉!

    public static void main(String[] arg) {


    for (int i = 1; i <= 1000; i++) {
        int sum = 0;
        for (int j= 1; j < i; j++) {
            if (i % j == 0) {
                sum += j;
            }
        }
        if (i == sum) {
            System.out.println(sum+"是完数");
        }
    }

    System.out.println("2022.9.18林峰");
}