把数字n的全部因子相加求和,一共有T个数据,第一行输入T表示此次,需要计算的个数

#include <stdio.h>
#include <stdlib.h>
int main()
{
int T,N,a=1,i=1,sum;
scanf("%d",&T);
for(i=1;i<=T;i++)
{
scanf("%d",&N);
while(1)
{
if(N<=a)
{
printf("%d\n",sum);
break;
}
if(N%a==0)
{
sum=sum+a;
a++;
}

   if(N%a!=0)
   {
       a++;
   }
   }
}

return 0;
}
为什么不能连续输出?

在for循环下面一行加上:
a=1;
sum=0;

 觉得有用的话采纳一下哈