输入lim,把所有小于等于lim的素数保存在a数组里面,输出素数的个数。这个程序哪里错了,不管输入什么一直输出1

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

修改如下,供参考:

#include <stdio.h>
int main()
{
    int a[100],i,j,k=0,lim,flg;
    scanf("%d",&lim);
    for(i = lim;i > 1; i--)
    {
        for(j=2,flg=1;flg && j < i;j++){
            if(i%j == 0) flg = 0;
        }
        if(flg) a[k++] = i;
    }
    printf("%d",k);
    return 0;
}