c语言筛选法求素数

使用了动态内存分配,求给定区间里面所有的素数,

#include
#include
int main()
{
int n,i,a,b;int *p;
scanf("%d",&n);
p=(int *)calloc(n,sizeof(int));
for(i=2;i<=n;i++)
{
if(*(p+i)==0)
for(a=2;a*i<=n;a++)
*(p+(a*i))=1;
}
for(i=2;i<=n;i++){
if(*(p+i)==0)
printf("%dn",i);
}

return 0;
}

参考了网上的筛选法,自己添加的动态内存。

因为不知道具体操作时候的内存有多大,所以使用了动态内存

你可能感兴趣的:(c语言筛选法求素数)