#include <bits/stdc++.h>
using namespace std;
#define ll long long
vector v;
int sieve_of_erathosis(ll m)
{
bool mark[m];
memset(mark,true,sizeof(mark));
for(ll i=2;i<m;i++)
{
if(mark[i]==true)
{
v.push_back(i);
for(ll j=i*2;j<m;j=j+i)
mark[j]=false;
}
}
return 0;
}
int segmented_sieve(ll n,ll right)
{
ll m=floor(sqrt(n))+1;
ll low=m;
ll high=m*2;
while(low<n)
{
bool mark[m+2];
memset(mark,true,sizeof(mark));
for(ll i=0;i<v.size()&&v[i]<floor(sqrt(n))+1;i++)
{
ll lolimit=floor(low/v[i]) * v[i];
if(lolimit<v[i])
lolimit+=v[i];
for(ll j=lolimit;j<high;j+=v[i])
mark[j-low]=false;
}
for(ll j=low;j<high;j++)
if(mark[j-low]==true)
if(j>=right&&j>v[v.size()-1])
printf("%lld\n",j);
low=low+m;
high=high+m;
if(high>n)
high=n;
}
return 0;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll no;
ll m;
m=100001;
sieve_of_erathosis(m);
scanf("%lld",&no);
while(no–)
{
ll right,n;
scanf("%lld%lld",&right,&n);
for(ll i=0;i<v.size();i++)
{
if(v[i]>=right&&v[i]<=n)
printf("%lld\n",v[i]);
}
if(n>=v[v.size()-1])
segmented_sieve(n,right);
}
return 0;
}
what wrong with this code?