亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何解決 JavaScript heap out of memory on prime

如何解決 JavaScript heap out of memory on prime

飲歌長嘯 2022-12-22 15:13:45
我在理解我遇到的這個問題時遇到了問題。我正在嘗試找到用于生成此數字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但仍然沒有任何效果??赡苁鞘裁磫栴}?怎么理解呢?感謝幫助
查看完整描述

1 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

  1. 您應該在開始時將數組初始化primes為空數組

  2. 您只需要循環到數字的平方根。

  3. 一旦你找到一個質因數,就繼續用它除以這個數,直到它不能再被整除為止,這樣就不需要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));


查看完整回答
反對 回復 2022-12-22
  • 1 回答
  • 0 關注
  • 97 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號