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.
ciaociaocodice: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; }

Rispondi quotando