小白菜鸡提问!不知道这个代码哪里错了😭

我自己写的,写完了感觉思路是对的吧..但是结果不对
题目:打印1000以内的完数

#include
int main()
{
int i,j,k=0;
for(i=1;i<1000;i++)
{
for(j=1;j<=i-1;j++)
{

    if(i%j==0)
    {
        i=i/j;
    k=k+j;
    }
}
if(k==i)
{
    printf("%d\n",i);
}    

}
}

改动处见注释,供参考:

#include<stdio.h>
int main()
{
    int i, j, k = 0;
    for (i = 1; i < 1000; i++)
    {
        for (j = 1, k = 0; j <= i - 1; j++) //for(j=1;j<=i-1;j++) 修改
        {

            if (i % j == 0)
            {
                //i = i / j;  修改
                k = k + j;
            }
        }
        if (k == i) //if (k = =i) 修改
        {
            printf("%d\n", i);
        }
    }
}

k每次不清零呀?
i=i/j;这又是干什么,你在循环里修改i,标准死循环啊
单独拿出每块代码来看,都感觉像是有思路
但是放一起,你其实没思路