javascript - 我最大的质数查找函数有什么问题?

标签 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;
}

最佳答案

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

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

关于javascript - 我最大的质数查找函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29195707/

相关文章:

javascript - NodeJS Redis session 不会通过浏览器重定向持续存在

algorithm - 对邻接矩阵的行和列进行排序以显示派系

java - Java 中素数算法的时间复杂度

java - Java 8 中的质数

javascript - Node 项目在本地可以运行,但通过 NPM 安装时失败?

javascript - backbone.js:如何绑定(bind)渲染

python - 断字问题 - 创建数组/矩阵后如何继续?

algorithm - 是否有一种算法可以在 Http 上工作,用于估计时钟偏差?

haskell - 我的 Euler Project #3 解决方案太慢了

javascript - 如何让模数运算符在 JavaScript 中的两个数字之间添加奇数?