이 문제를 이해하는 데 문제가 있습니다. 이 숫자를 992,474,117 로 만드는 데 사용 된 소수를 찾으려고합니다.
이를 위해 다음 코드를 적용했습니다.
function primeFactorsTo(max)
{
var store = new Array(max), i, j, primes = new Array(max);
for (i = 2; i <= max; ++i)
{
if (!store [i])
{
primes.push(i);
for (j = i << 1; j <= max; j += i)
{
store[j] = true;
}
}
}
return primes;
}
primeFactorsTo(992474117)
이 코드를 실행하면 >> 치명적인 오류 : 잘못된 테이블 크기 할당 실패-JavaScript 힙 메모리 부족 <<
나는 더 큰 오래된 공간 크기를 적용해야하는 몇 가지 솔루션을 보았습니다.
node --max-old-space-size=4096 yourFile.js
그러나 여전히 작동하지 않습니다. 무엇이 문제일까요? 그것을 이해하는 방법? 도움을 주셔서 감사합니다
primes
시작시 배열을 빈 배열로 초기화해야합니다.store
배열 의 필요성을 없애기 위해 더 이상 나눌 수 없을 때까지 숫자를 계속 나눕니다 .function primeFactorsTo(max)
{
var primes = [];
for (i = 2; i * i <= max; ++i)
{
if(max % i === 0){
primes.push(i);//found prime factor
while(max % i === 0) max /= i;
}
}
if(max > 2) primes.push(max);//largest prime factor
return primes;
}
console.log(primeFactorsTo(992474117));
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다