亲密数问题,不出结果,求解答

编译没有错误,就是不出结果,是不是逻辑有问题,麻烦帮忙看一下,找找错误,谢谢

img

img

求因数时死循环了

#include<stdio.h>
#include<string.h>

int main()
{
    int A,j,B,k2;
    int mid;
    for(A = 2;A <= 3000;A++){
        int k1 = 1;
        for(j = 2;j < A;j++){
            if(A % j == 0){
                k1 = k1 + j;
            }
        }
        
        for(B = 2;B <= 3000;B++){
            k2 = 1;
            for(j = 2;j < B;j++){
                if(B % j == 0){
                    k2 = k2 + j;
                }
            }
            //printf("k1 = %d k2 = %d\n",k1,k2);
            if(k1 == B && k2 == A && A < B){
                printf("(%d,%d)",A,B);
            }     
        }
    } 
    return 0;
} 

while 改为 if
循环变量未在循环体内改变,那就是死循环