PLEASE HELP ME HERE
I AM STUCK AT THIS QUESTION FROM PAST 3 DAYS
I AM GETTING A SIGFPE RUNTIME ERROR FOR THIS CODE
#include<bits/stdc++.h>
#define MAX_NO 1000000000
using namespace std;
void SimpleSieve(vector<int> &prime)
{
int limit = (int) ceil(sqrt(MAX_NO));
bool mark[limit+1];
memset(mark,true,sizeof(mark));
for(int p=2;p*p<=limit;p++)
{
if(mark[p])
{
for(int i=2*p;i<=limit;i+=p)
mark[i]=false;
}
}
for(int p=2;p<=limit;p++)
{
if(mark[p])
prime.push_back(p);
}
}
int main()
{
vector<int> prime;
SimpleSieve(prime);
int t,low,high,temp,flag;
cin>>t;
while(t--)
{
cin>>low>>high;
for(int i=low;i<=high;i++)
{
flag=0;
if(i==1)
continue;
else if(i==2 || i==3)
cout<<i<<endl;
else
{
temp=(int) floor(sqrt(i));
for(int j=0;;j++)
{
if(prime[j]<=temp)
{
if((i%prime[j])==0)
{
flag=0;
break;
}
else
{
flag=1;
continue;
}
}
else
break;
}
}
if(flag==1)
cout<<i<<endl;
}
cout<<endl;
}
}