Potrzebujesz podpowiedzi / porad, jak obliczyć bardzo duże liczby w JavaScript

Moim zadaniem jest stworzenie tablicy zawierającej wszystkie liczby pierwsze do 12-cyfrowej liczby.

Próbowałem naśladowaćSito Eratostenesa najpierw tworząc funkcjęenumerate który tworzy tablicę zawierającą każdą liczbę całkowitą od 2 donum:

var enumerate = function(num) {
    array = [];
    for (var i = 2; i <= num; i++) {
        array.push(i);
    }
    return array;
};

Potem stworzyłem funkcjęleaveOnlyPrimes który przeplata i usuwa wielokrotności każdego członka tablicy do 1/2max z tablicy (to nie jest każda liczba całkowita, ponieważ tablica staje się mniejsza z każdą iteracją):

var leaveOnlyPrimes = function(max,array) {
    for (var i = 0; array[i] <= max/2; i++) {
        (function(mult,array) {
            for (var i = mult*2; i <= array[array.length-1]; i += mult) {
                var index = array.indexOf(i);
                if (index !== -1) {
                    array.splice(index,1);
                }
            }
        })(array[i],array);   
    }
};

Działa to dobrze z liczbami do około 50000, ale wyższymi, a przeglądarka wydaje się zamrozić.

Czy istnieje taka wersja tego podejścia, która mogłaby pomieścić większe liczby, czy też szczeka złe drzewo?

questionAnswers(2)

yourAnswerToTheQuestion