Ошибка в типах (JS)

Решаю задачу на Codewars, ссылка: https://www.codewars.com/kata/670031c78cc02fa6c28ba28a/train/javascript

Получаю ошибку:

"return BigInt(sum); RangeError: The number Infinity cannot be converted to a BigInt because it"

Как преобразовать infinity к BigInt, или нужно пропускать Infinity?

Когда пропускаю Infinity получаю другие результаты — как исправить?

Работает только с маленькими n:

Корректное прохождение тестов

С тысячными n уже ошибка:

Ошибка на тесте

Код:

function channellingPrimes(n) {
    const res = 0;
    const bits = [];
    let sum = 0;
  
    function isPrime( num ) {
        if( num <= 1 )
            return false;
        
        for( i = 2; i * i <= num; i ++) { 
            if( num % i == 0 ) return false;
        }
        return true;
    }
  
    for(let i = 1; i <= n; i++) {
        if(isPrime(i)) {
            bits.push(1);
        } else {
            bits.push(0);
        }
    }
  
    for(let i = 0; i < bits.length; i++) {
        if(bits[i] === 1) {
            sum += Math.pow(2, i);
        }
    }
    
    return BigInt(sum);
}

console.log(channellingPrimes(4800));

Ответы (0 шт):