Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;“素数中的步骤”;代码战_Javascript_Arrays_Loops - Fatal编程技术网

Javascript &引用;“素数中的步骤”;代码战

Javascript &引用;“素数中的步骤”;代码战,javascript,arrays,loops,Javascript,Arrays,Loops,我在做代码战的“素数步骤”时遇到了问题 使函数步骤(g,m,n)g=步骤>=2,m=开始编号>=2, n=最后一个数字>=n。步骤(g,m,n)将返回第一个匹配[a,b],其中 m=2&&n>=m){ var p=[]; var ans=[]; 对于(var temp=m;temp,此代码可能会对您有所帮助 function gap(g, m, n) { var prime-numbers = []; var final = []; var prime; for (var

我在做代码战的“素数步骤”时遇到了问题

使函数步骤(g,m,n)g=步骤>=2,m=开始编号>=2, n=最后一个数字>=n。步骤(g,m,n)将返回第一个匹配[a,b],其中 m 我在基本测试用例中做得不错,但当我提交时,我在某个地方得到了无穷循环。谁能给我提个建议吗?

函数存在(n){
如果(类型n=='number'&&(n%1)==0){
返回true;
}
否则返回false;
}
功能步骤(g、m、n){
如果(isInt(g)&&isInt(m)&&isInt(n)&&g>=2&&m>=2&&n>=m){
var p=[];
var ans=[];

对于(var temp=m;temp,此代码可能会对您有所帮助

   function gap(g, m, n) {
  var prime-numbers = [];
  var final = [];
  var prime;

  for (var i = m; i <= n; i++) {
    prime = true;
    for (var j = 2; j < i / 2; j++) {
        if (i % j === 0) {
            prime = false;
        }
    }
    if (prime) {
        prime-numbers.push(i);
    }
}

      prime-numbers.forEach(function(prime, index) {
    if (prime + g === prime-numbers[index + 1]) {
        final.push(prime, prime-numbers[index + 1]);
    }
});

if (final) return final.slice(0,2);
else return null;
}
功能间隙(g,m,n){
var素数=[];
var final=[];
var素数;

对于(var i=m;i,此代码可能会帮助您

   function gap(g, m, n) {
  var prime-numbers = [];
  var final = [];
  var prime;

  for (var i = m; i <= n; i++) {
    prime = true;
    for (var j = 2; j < i / 2; j++) {
        if (i % j === 0) {
            prime = false;
        }
    }
    if (prime) {
        prime-numbers.push(i);
    }
}

      prime-numbers.forEach(function(prime, index) {
    if (prime + g === prime-numbers[index + 1]) {
        final.push(prime, prime-numbers[index + 1]);
    }
});

if (final) return final.slice(0,2);
else return null;
}
功能间隙(g,m,n){
var素数=[];
var final=[];
var素数;

对于(var i=m;我不认为你真的有一个无限循环,但你的初始测试是二次复杂的,如果n-m太大,这将开始花费大量的时间。看看这里,寻找一种更有效的方法:我只是完成任务。我重做了所有代码,工作流程是正确的,但它需要大量的时间进行大型测试我不会破坏这里的答案,但是如果有人遇到同样的问题,那么尝试改进检查素数解,尽可能少地检查这些“可能的素数”以更聪明的方式。我不认为你真的有一个无限循环,但你的主要测试是二次复杂度的,如果n-m太大,这将开始花费相当多的时间。看看这里,寻找一种更有效的方式的指针:我只是完成任务。我重新编写了所有代码,工作流是正确的,但它需要大量的时间来完成巨大的测试我不会破坏这里的答案,但是如果有人遇到同样的问题,那么尝试改进检查素数解决方案,尽可能少地检查,并以更智能的方式扫描这些“可能的素数”。