Ma che, sei matto? E chi ci mette mano in quel casino??!!
Se vuoi ti posso girare qualcosa di un po' più sintetico. È una funzione che ti restituisce un array di primi da 2 a nMax. Ovviamente anche in questo caso si tratta del Crivello di Eratostene. Facci quel che vuoi, ma non chiedere l'impossibile.

codice:
function crivello (nMax) {
	var aDivisors = [], aPrimes = [];
	for (var nIter2, nDivisor, nIter1 = 2; nIter1 < nMax; nIter1++) {
		if (aDivisors[nIter1]) {
			for (nIter2 = 0; nIter2 < aDivisors[nIter1].length; nIter2++) {
				nDivisor = aDivisors[nIter1][nIter2];
				if (aDivisors[nDivisor + nIter1]) { aDivisors[nDivisor + nIter1].push(nDivisor); }
				else { aDivisors[nDivisor + nIter1] = [nDivisor]; }
			}
			delete aDivisors[nIter1];
		} else {
			aPrimes.push(nIter1);
			if (nIter1 * nIter1 < nMax) { aDivisors[nIter1 * nIter1] = [nIter1]; }
		}
	}
	return aPrimes;
}
ciaociao