Zaproponuję Ci następujące rozwiązanie oraz pokażę przykładowy kod.
Możesz dodawać dynamicznie elementy do Twojej tablicy, za pomocą metody push. Potem możesz stworzyć funkcję, która sprawdzi czy dana liczba jest liczbą pierwszą. Na koniec wystarczy wykonywać te kroki, aż długość tablicy przechowującej liczby pierwsze nie będzie równa zadanej liczbie.
Tutaj masz przykładowy kod:
/* Funkcja sprawdzająca, czy liczba jest pierwszą */
function is_PrimeNumber(number){
if(number < 2) return false;
for(var i = 2; i*i < number; ++i)
if(!(number%i)) return false;
return true;
}
/* Funkcja generująca n liczb pierwszych */
function generatePrimeNumbers(howMany){
if(howMany < 1) return;
var resultArray = new Array();
for(var i = 0; resultArray.length <= howMany; ++i){
if(is_PrimeNumber(i))
resultArray.push(i);
}
document.write('<p>Kolejne ' + howMany + ' liczb pierwszych.</p>');
for(var i in resultArray){
document.write(' ' + resultArray[i] + ' ');
}
}
/* Test */
function main(){
var howMany = prompt("Ile liczb pierwszych wygenerować?");
generatePrimeNumbers(howMany);
}
Powyższy kod jest sklecony na szybko. Działa prawidłowo, jednak możnaby go udoskonalić - zamiast sprawdzać każdą z liczb osobno, moglibyśmy wyeliminować liczbę testów, za pomocą sita Erastotenesa. Wtedy nasza funkcja generująca byłaby nieco inna. W każdym razie kod działa. Jeśli czegoś nie zrozumiałeś, to pisz :)