#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
bool prime[1000000500];
void generate(long long end)
{
memset(prime,true,sizeof(prime));
prime[0]=false;
prime[1]=false;
for(long long i=0;i<=sqrt(end);i++)
{
if(prime[i]==true)
{
for(long long y=i*i;y<=end;y+=i)
{
prime[y]=false;
}
}
}
}
int main()
{
int n;
long long b,e;
scanf("%d",&n);
while(n--)
{
cin>>b>>e;
generate(e);
for(int i=b;i<e;i++)
{
if(prime[i])
printf("%d\n",i);
}
}
return 0;
}
That's my code for spoj prime generator.
Altought it generates the same output as another accepted code ..