Prime Number Generation

if I have to generate the nth prime number then what should the array size suppose n = 5000000

#include
using namespace std;
#define ll long
ll a[100000001] = {0};
// Prime Sieve means arrays of all primes number
void primeSieve(ll a[], int n) {

// set all the odd number start from 3 are prime
for (int i = 3; i < 100000001; i += 2) {
    a[i] = 1;
}

for (int i = 3; i < 100000001; i += 2) {
    if (a[i]) {
        for (ll j = i * i; j < 100000001; j += i) {
            if (a[j]) {
                a[j] = 0;
            }
        }
    }
}

// special case :
a[0] = a[1] = 0;
a[2] = 2;
int prime[5000000];
int k = 1;
for (int i = 0; i < 100000001; i++) {
    if (a[i]) {
        prime[k++] = i;
    }
}

for(int i=1; i<5000000; i++) {
    if(i == n) {
        cout << prime[i];
    }
}

}

int main() {
    int n;
    cin >> n;
    primeSieve(a, n);
    return 0;
}