Benötigen Sie einen Hinweis / Rat, wie Sie sehr große Zahlen in JavaScript berücksichtigen können

Meine Aufgabe ist es, ein Array zu erzeugen, das alle Primzahlen bis zu einer 12-stelligen Zahl enthält.

Ich habe versucht, die zu emulierenSieb von Eratosthenes indem Sie zuerst eine Funktion ausführenenumerate das erzeugt ein Array mit jeder ganzen Zahl von 2 bisnum:

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

Dann habe ich eine Funktion gemachtleaveOnlyPrimes Dies durchläuft und entfernt ein Vielfaches von jedem Arraymitglied bis zu 1/2max aus dem Array (dies ist nicht jede ganze Zahl, da das Array mit jeder Iteration kleiner wird):

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);   
    }
};

Dies funktioniert gut mit Zahlen bis zu etwa 50000, aber höher als das und der Browser scheint einzufrieren.

Gibt es eine Version dieses Ansatzes, die gemacht werden könnte, um größere Zahlen aufzunehmen, oder belle ich den falschen Baum an?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage