我最大的寻找功能有什么问题?

时间:2015-03-22 14:43:04

标签: javascript algorithm primes

我似乎无法弄清楚我的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;
}

1 个答案:

答案 0 :(得分:2)

函数sqrtMath下定义。像这样使用它:

for (var j=3;j<=Math.ceil(Math.sqrt(i));j++) {