简体   繁体   中英

My prime number function is broken but I don't know why

The following is a small function that I made that is supposed to list all of the prime numbers between 1 and 1001. It uses a for loop to get a number, then another for loop to check if it is prime. Once it is done checking (if it is prime), it pushes the number to an array. This array should be outputted at the end, but it is not. Thanks in advance.

<html>
<body>

<script>

function pNumList(){
    var primeNumbers = [];

    for(var noomber = 2; noomber<=1001; noomber++){
        for(var i = 2; i<noomber; i++){
            if(noomber%i==0){}else{


                primeNumbers.push(noomber);
            }
        }
    }
    pNumbersList.innerHTML = primeNumbers;
}

</script>

<p id="pNumbersList"></p>
<button  onclick="pNumList()" value = "Let's see em">Prime numbers list!</button>
<br>
<p>This might take a sec...</p>

</body>
</html>.

Here is working code:

function pNumList(){
    var primeNumbers = [];

    for(var noomber = 2; noomber<=1001; noomber++){
        var prime = true;
        for(var i = 2; i<noomber; i++){
            if(noomber%i==0){
                prime = false;
                break;
            }
        }
        if (prime) {
            primeNumbers.push(noomber);
        }
    }
    pNumbersList.innerHTML = primeNumbers.join(',');
}

JSFIDDLE

 function pNumList(){
var primeNumbers = [];

for(var noomber = 2; noomber<=1001; noomber++){
    for(var i = 2; i<noomber; i++){
        if(noomber%i==0){}else{


            primeNumbers.push(noomber);
        }
    }
}
pNumbersList.innerHTML = primeNumbers.toString();

You just need to convert your js array to string using toString; But your algorythm stil incorrect, u add number to array each time when noomber%i!=0

Here is the right function:

function pNumList(){
var primeNumbers = [];

for(var noomber = 2; noomber<=1001; noomber++){
    for(var i = 2; i<noomber; i++){
        if(noomber%i==0){
        break;
        }else{


            primeNumbers.push(noomber);
break;
        }
    }
}
pNumbersList.innerHTML = primeNumbers;

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM