【问题标题】:What's wrong with my largest prime finding function?我最大的素数查找函数有什么问题?
【发布时间】:2015-03-22 14:43:03
【问题描述】:

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

【问题讨论】:

    标签: javascript algorithm primes


    【解决方案1】:

    函数sqrt 定义在Math 下。像这样使用它:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 2021-04-11
      • 2015-09-30
      • 2017-10-07
      相关资源
      最近更新 更多