如何解决素数练习中的JavaScript内存堆问题

如何解决素数练习中的JavaScript内存堆问题,javascript,Javascript,我有一个问题,理解这个问题。 我试图找到用来生成这个数字的素数992474117 为此,我应用了以下代码: 函数primeFactorsTo(最大值) { 变量存储=新数组(最大值),i,j,素数=新数组(最大值); 对于(i=2;i 您应该在开始时将primes数组初始化为空数组 您只需要循环到数字的平方根 找到素数因子后,继续将该数除以它,直到它不再可除,以避免使用存储数组 函数primeFactorsTo(最大值) { var素数=[]; 对于(i=2;i*i2)素数,push(max

我有一个问题,理解这个问题。 我试图找到用来生成这个数字的素数992474117

为此,我应用了以下代码:

函数primeFactorsTo(最大值)
{
变量存储=新数组(最大值),i,j,素数=新数组(最大值);
对于(i=2;i
  • 您应该在开始时将
    primes
    数组初始化为空数组
  • 您只需要循环到数字的平方根
  • 找到素数因子后,继续将该数除以它,直到它不再可除,以避免使用
    存储
    数组
  • 函数primeFactorsTo(最大值)
    {
    var素数=[];
    对于(i=2;i*i2)素数,push(max);//最大素数因子
    返回素数;
    }
    
    console.log(primeFactorsTo(992474117));
    您应该使用
    []
    初始化
    素数
    ,而不是
    新数组(max)
    。还可以使用
    var
    let
    声明
    i
    j
    。此外,您真正需要的素数仅为
    Math.sqrt(max)+1