输出两个数之间的完数(6=1+2+3)个数,输出不来结果

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果
#include
int main()
{ int n,a,b,i,j,k,t,count,sum;
  while(scanf("%d",&n)!=EOF)
  { 
    k=0;
     scanf("%d%d",a,b);
     if(a>b)
      { t=a;a=b;b=t;
      }
     for(i=a;i<=b;i++)
      { sum=0;
        for(j=1;j<=i;j++)
         {if(i%j==0)
          sum=sum+j;}
        if(i==sum)
         k++;
         
      } printf("%d ",k);
  }
   
    return 0;
}


#include<stdio.h>
int main()
{ 
    int n,m,a,b,i,j,k,t,count,sum;
    scanf("%d",&n);
    for(m=0;m<n;m++)
    { 
        k=0;
        scanf("%d%d",&a,&b);
        if(a>b)
        { 
            t=a;a=b;b=t;
        }
        for(i=a;i<=b;i++)
        { 
            sum=0;
            for(j=1;j<i;j++)
            {
                if(i%j==0)
                    sum=sum+j;
            }
            if(i==sum)
                k++;
        } 
        printf("%d ",k);
    }
    return 0;
}

你是不是忘记输入n了