创建的Javascript素数生成器公式

问题描述 投票:0回答:2

我已经在用户提示输入的特定范围之间创建了JavaScript素数生成器。

我的问题是我不想使用该函数来解决此查询,任何人都建议我要进行哪些更改,以使此代码更简短,更容易理解。

代码在下面列出:

function isPrime(z) {
    var flag = true;
    if (z == 0 || z == 1) {
        flag = false;
    }
    for (let y = 2; y < z; y++) {
        for (let t = 1; t <= y; t++) {
            if (t % y == 0) {
                break;
            } else if (z % y == 0) {
                flag = false;
            }
        }
    }
    return flag;
}

var userInput = +prompt('Please Enter Your Value To check Prime Number list between a range');
var arrayToCheck = [];

for (var i = 1; i < userInput; i++) {
    if (isPrime(i) == true) {
        arrayToCheck.push(i);
    }
}
for (i = 0; i < arrayToCheck.length; i++) {
    var r = i + ')' + ' ' + arrayToCheck[i] + ', ' + ' ';
    document.write(r);
}
console.log(arrayToCheck);
javascript primes
2个回答
0
投票

您已经实现了类似Sieve of Eratosthenes ...之类的功能。您可能要做的最好的事情就是花几分钟阅读我链接的页面。实际的Sieve算法非常简单,并且您显然知道足够的Javascript来实现它,而不会带来太多麻烦。


0
投票

您可以在评估引用为真时利用内置功能。因此,与其说:如果(isPrime(i)== true)这样评估真实性:if(isPrime)利用新的ES6功能字符串插值也将很不错。像这样使用模板文字:var r =`$ {i})$ {arrayToCheck [i]},;也检查一下https://github.com/rwaldron/idiomatic.js/blob/master/readme.md希望对您有所帮助。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.