Run error in 2 test cases

#include
#include
using namespace std;
int main() {

long long int n =5000005, i;
long long int p[n+1]={0};
p[2]=1;

vector<long long int> primes ;       
primes.push_back(2);                
for(i=3;i<=n;i+=2)
{
	p[i]=1;
}
for(i=3;i<=n;i+=2)
{
	if(p[i])
	{
        primes.push_back(i);        
		for(long long int j=i*i;j<=n;j+=i)
		p[j]=0;
	}
}

	long long int g;
	cin>>g;

    cout << primes[g-1] << endl;    

return 0;

}

@ankitdelhi20 Increase the range of n

Please specify the range of n?

I have tried different ranges but still not getting rid of run error