include
include
void sieve(int * arr, int b)
{
for(int i=2;i<=sqrt(b);++i)
{
for(int j=i*2;j<=b;j+=i)
{
*(arr+j)=0;
}
}
}
void display(int a, int b, int * arr)
{
for(int i=a;i<=b;++i)
{
if(*(arr+i)!=0)printf("%d\n", i);
}
}
int main(void) {
int a,b,i,n;
scanf("%d", &n);
for(int j=1;j<=n;++j)
{
scanf("%d %d", &a, &b);
int arr[b+1];
for(i=0;i<=b;++i)
{
arr[i]=i;
}
arr[1]=0;
sieve(arr,b);
display(a,b,arr);
if(j!=n)printf("\n");
}
return 0;
}
It gives SIGSEGV fault. I don't know why. Any help is greatly appreciated. Thanks!