这个为什么输出不显示

这段代码,是想输出数据区间的完数?修改如下,供参考:
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int i, j, a, flg = 0;
for (i = 2; i <= n; i++) {
for (j = 2, a = 1; j < i; j++) {
if (i % j == 0)
{
a = a + j;
}
}
if (a == i){
flg = 1;
printf("a=%d\n", i);
}
}
if (!flg)
printf("No Found.");
return 0;
}