c语言求素数出错,求帮助

问题遇到的现象和发生背景

c语言计算一亿以内的素数时,我想尝试着筛选法求素数,但是没有输出内容,我一个c初学者真的有些蒙蔽,求帮助

用代码块功能插入代码,请勿粘贴截图

#include
#define N 100000000
int main()
{ int count=0;
int a[N];
int i,j;

for(i=1;i<=N;i++)
{
    a[i-1]=i; 
}
for(i=3;i*i
{
    if(a[i-1])
    continue;
    
    for(j=2*i;j    {
     if(a[j-1])
      {    
          a[j-1]=1;
      }
    }
}
for(i=3;i<=N;i+=2)
{        
   if(a[i]){
     count++;
             }
}
printf("素数的数目为%d\n",count++);
return 0; 

}

运行结果及报错内容

运行结果无printf内容

我的解答思路和尝试过的方法

我想先给数字赋值,再用筛选判断是否为素数

我想要达到的结果

得到素数的个数

这么大的数组分配不起来。改用动态数组。
int *a = (int *)malloc(N * sizeof(int));