I'm not quite sure why you need to know what the $2147483647$-th prime number is, but I'm going to guess it's so you know what data type to store the elements of the array in.
In that case, you only need an approximate value. The Prime Number Theorem tells us that
$$\pi(n)\approx\frac{n}{\log(n)}$$
where $\pi(n)$ is the number of prime numbers less than $n$. So we are looking for $n$ with $\pi(n)\ge2147483647$ (then there are at least $2147483647$ primes less than $n$, so in particular the first $2147483647$ primes are all smaller than $n$, and can be stored in variables of size $n$).
Let's just ignore the $\approx$ sign and treat it as an equality. This means we might accidentally get a value that's too small, but let's not worry about that.
So we want
$$\pi(n)=\frac{n}{\log(n)}=2147483647$$
Wolfram|Alpha gives an answer of $5.303\times 10^{10}$ for $n$.
Now $\log_2(5.03\times 10^{10})\approx 35.5$, so you'd need 36 bits to store that number.
$\log_{10}(5.03\times10^{10})\approx 10.7$, so you'd need $11$ digits to represent the $2147483647$-th prime number in decimal.
For each product, the maximum result is
$$
(2^M - 1)^2 = 2^{2M} - 2^{M+1} + 1
$$
Let $q = log_2N \Leftrightarrow N = 2^q$, then the biggest number you might get from your dot product is
$$
N(2^{2M} - 2^{M+1} + 1) = 2^{2M+q} - 2^{M+q+1} + 2^q
$$
which means you might need $2M+\mathtt{ceil}(q)$ bits
Best Answer
If they are randomly distributed, each one needs 30 bits, so you need 300 bits if you store them in binary. If you convert them to decimal, you need 10 digits each (maybe 11). Then if you store the digits in 8 bit ASCII you need 800 (or 880) bits. The big inefficiency is taking a decimal digit (of which there are only 10) and using 8 bits (of which there are 256) to store it.