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));