Нужна подсказка / совет относительно того, как учитывать очень большие числа в JavaScript

Моя задача - создать массив, содержащий все простые числа, вплоть до 12-значного числа.

Я пытался подражатьСито Эратосфена сначала сделав функциюenumerate который производит массив, содержащий каждое целое число от 2 доnum:

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

Тогда я сделал функциюleaveOnlyPrimes который проходит и удаляет кратные числа каждого элемента массива до 1/2max из массива (это не заканчивается каждым целым числом, потому что массив становится меньше с каждой итерацией):

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

Это прекрасно работает с числами до 50000, но чуть выше, и браузер, кажется, зависает.

Есть ли какая-то версия этого подхода, которую можно было бы сделать, чтобы приспособить большие числа, или я лаю не на том дереве?

Ответы на вопрос(2)

Ваш ответ на вопрос