Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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 在JS中给出重复的素因子分解_Javascript - Fatal编程技术网

Javascript 在JS中给出重复的素因子分解

Javascript 在JS中给出重复的素因子分解,javascript,Javascript,前三行是准确的,但6^2只是2和3的重复。如何使6^2不显示,以及如何解决其他类似的问题,如输入1000时给出的额外25 另外,我知道这段代码需要做的工作比必要的多,但我还是宁愿让它或多或少地工作,也不愿用其他方法完全替换它。您正在通过执行n=m将n重置为其原始值。这就是为什么你会得到非素因子的原因。而且,您不需要o。此外,您需要运行外部循环直到m/2+1,而不仅仅是直到m/2。请参阅下面的更正版本 var userNumber=parseInt(提示(“您希望计算的数字是多少?”); var

前三行是准确的,但6^2只是2和3的重复。如何使6^2不显示,以及如何解决其他类似的问题,如输入1000时给出的额外25


另外,我知道这段代码需要做的工作比必要的多,但我还是宁愿让它或多或少地工作,也不愿用其他方法完全替换它。

您正在通过执行
n=m将n重置为其原始值。这就是为什么你会得到非素因子的原因。而且,您不需要
o
。此外,您需要运行外部循环直到m/2+1,而不仅仅是直到m/2。请参阅下面的更正版本

var userNumber=parseInt(提示(“您希望计算的数字是多少?”);
var分解=函数(n){
var m=n;
VarO=n;
对于(i=2;i1){
控制台日志(i+“^”+p);
}
否则{
控制台日志(i);
}
}
else{}
}
};

保理(用户编号)除了重复之外,您的代码还有其他错误。试着把10个因素考虑进去。它给出2,而不是2和5,试着得到10的因子。它只给出2。还是wrong@AlbertoTrindadeTavares抢手货请参阅更正的版本。对于OP,我建议您下次在发布问题之前更仔细地调试代码。我对编码非常陌生。这是因为盯着代码看了半个小时,不知道如何修复它。如果我没有试图修复它,我是不会发布的。谢谢你的帮助。
var userNumber = parseInt(prompt("What number would you like to have factored?"));

var factoring = function(n) {
  var m = n;
  var o = n;
  for(i = 2; i < n/2; i++) {
    if (m % i === 0 && o % i === 0) {
      var p = 0;
      while (n % i === 0) {
        n = n / i;
        p++;
      }
      n = m;
      o = o / i;
      if (p > 1) {
        console.log(i + "^" + p);    
      }
      else {
        console.log(i);
      }
    }
    else {}
  }
};

factoring(userNumber);
2^2
3^2
5^2
6^2