我似乎无法弄清楚我的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;
}
答案 0 :(得分:2)
函数sqrt
在Math
下定义。像这样使用它:
for (var j=3;j<=Math.ceil(Math.sqrt(i));j++) {