查找所有小于输入的质数

Nic*_*zel 5 javascript jquery primes

我必须input field取一个最大数并找到所有较小的数。

它应该返回到array并显示arrayalert

除了我每次都变得空白。

HTML:

<p>Please enter the maximum number you'd like to find all prime numbers below it for.</p>
<p><input type="text" id="number" /></p>
<button id="run">RUN</button>
Run Code Online (Sandbox Code Playgroud)

CSS:

#go, #number {float:left;}
Run Code Online (Sandbox Code Playgroud)

JavaScript:

var primes=[];
function isPrime(x){
    var prime=true;
    for(var i=0;i<=Math.sqrt(x);i++){
        if(x%i===0){
            prime=false;
        }
    }
    if(prime){
        primes.push(x);
    }
};
$('#run').on('click',function(){
    var total=$('#number').val();
    for(var j=2;j<=total;j++){
        isPrime(j);
    }
    alert(primes);
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/jH5jq/1/

Nic*_*zel 1

这就是问题所在:

for(var i=0;i<=Math.sqrt(x);i++){
Run Code Online (Sandbox Code Playgroud)

当然它会被 整除1

一个经过修改和工作的 jsfiddle

JavaScript:

var primes=[];
function isPrime(x){
    var prime=true;
    for(var i=2;i<=Math.sqrt(x);i++){
        if(x%i===0){
            prime=false;
        }
    }
    if(prime){
        primes.push(x);
    }
};
$('#run').on('click',function(){
    var total=$('#number').val();
    for(var j=3;j<=total;j++){
        isPrime(j);
    }
    alert(primes);
    primes=[];
});
Run Code Online (Sandbox Code Playgroud)