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