我似乎无法弄清楚我的 JS 函数有什么问题。我试图找到给定数字的最大质因数。 它在调用 2 或 4 时有效,但调用 3 时失败。
Jsfiddle: http://jsfiddle.net/prashanthcr/23y59nLa/ (它朝向 JS 部分的底部)
JS:
var problem3 = function(num) {
var max = 0;
var i = 3;
var prime;
while (num%2==0) {
num/=2;
max=2;
}
for (num;num>1;i+=2) {
prime = true;
for (var j=3;j<=Math.ceil(sqrt(i));j++) {
if (i%j==0) {
prime = false;
break;
}
}
if (prime==false) {
continue;
}
if (num%i!=0) {
continue;
}
while (num%i==0) {
num/=i;
max=i;
}
}
document.getElementById('answer3').innerHTML = max;
}
最佳答案
函数sqrt
定义在Math
下。像这样使用它:
for (var j=3;j<=Math.ceil(Math.sqrt(i));j++) {
关于javascript - 我最大的质数查找函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29195707/