Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save shawon100/8159bd5a5ad052015727677579b6e3a1 to your computer and use it in GitHub Desktop.

Select an option

Save shawon100/8159bd5a5ad052015727677579b6e3a1 to your computer and use it in GitHub Desktop.
var n=100000;
var k=1;
var l,u;
var a=new Array(100000);
var p=new Array(100000);
var segment=[];
var sg=[];
function sieve()
{
a.fill(0);
a[0]=1;
a[1]=1;
for(i=4;i<=n;i=i+2)
{
a[i]=1;
}
for(i=3;i<=Math.sqrt(n);i=i+2)
{
for(j=i*i;j<=n;j=j+2*i)
{
a[j]=1;
}
}
p[0]=2;
for(i=3;i<=n;i=i+2)
{
if(a[i]==0)
{
p[k]=i;
//cout<<p[k]<<endl;
k++;
}
}
}
function segmented_sieve(l,u)
{
var root,start,i,j,si;
sg.fill(0);
root=Math.sqrt(u)+1;
for(i=l;i<=u;i++)
{
sg.push(i);
}
if(l==0)
{
sg[1]=0;
}
else if(l==1)
{
sg[0]=0;
}
for(i=0;p[i]<=root;i++)
{
si=p[i];
start=si*si;
if(start<l)
{
start=((l+si-1)/si)*si;
}
for(j=start;j<=u;j=j+si)
{
sg[j-l]=0;
}
}
}
//test();
var m,g,c,r,t,l,h,u,w,tc,tx,i,j;
sieve();
tc=readline().split(' ');
segment.fill(0);
for(tx=1;tx<=tc;tx++)
{
l=readline().split(' ');
u=readline().split(' ');
segmented_sieve(l,u);
for(i=l;i<=u;i++)
{
if(sg[i-l]!=0)
{
segment.push(sg[i-l]);
}
}
for(i=0;i<segment.length;i++)
{
print(segment[i]);
}
segment.fill(0);
sg.fill(0);
print("\n");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment