需要在JavaScript中生成质数 [英] Need to generate prime numbers in JavaScript

查看:50
本文介绍了需要在JavaScript中生成质数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写JavaScript,以生成2到100的质数.但是,它不起作用,无法弄清楚.

I am writing a JavaScript to generate prime numbers from 2 to 100. However It doesn't work and can't figure it out.

你能帮我吗?

var array = new Array(100);

for (var i=2 ; i<=array.length-1; i++) {
    if((i%2===0) || (i%3===0))
        continue;
    document.writeln(i+",");
}

我修改了答案,但现在不打印2&3;如何包含2&3 ...结果是:

I modified my answer, but now it doesn't print 2 & 3; how can I include 2 & 3... result is :

5、7、11、13、17、19、23、25、29、31、35、37、41、43、47、49、53、55、59、61、65、67,71,73,77,79,83,85,89,91,95,97

推荐答案

function isPrime(num) {
    for ( var i = 2; i < num; i++ ) {
        if ( num % i === 0 ) {
            return false;
        }
    }
    return true;
}

function display(n) {
    var arr = [2];
    for ( var i = 3; i < n; i+=2 ) {
        if ( isPrime(i) ) {
            arr.push(i);
        }
    }
    console.log(arr); // use arr result on your own
}

display(100);

注意::在 display 函数中指定 n 参数,并将质数从2变为 n ...

NOTE: Specify n parameter in display function and get the primes from 2 to n ...

签出 JSFiddle

更新:请注意,上面的脚本是正确的,我将其保留,尽管除了添加相同的功能外,还添加了一个功能:

Updateing: Note that the above script is correct and I'm leaving it, though adding the same function with one functionality in addition:

function prime(n,flag) {
    ( typeof flag === "undefined" || flag === false ) ? flag = false : flag = true;

    function isPrime(num) {
        if ( num === 0 || num === 1 ) {
            return false;
        }
        for ( var i = 2; i < num; i++ ) {
            if ( num % i === 0 ) {
                return false;
            }
        }
        return true;
    }

    if ( flag ) {
        var arr = [2];
        for ( var i = 3; i <= n; i+=2 ) {
            if ( isPrime(i) ) {
                arr.push(i);
            }
        }
        return arr;
    } else {
        return isPrime(n);
    }
}

说明: prime 函数需要两个参数,第一个是必需的,第二个是可选的.如果仅指定第一个参数,则函数将根据数字是否为素数返回 true false .如果将第二个参数指定为 true (或除 undefined false 以外的任何其他类型),函数将返回以下内容的 array 2 n 的素数.例如:

Explanation: prime function expect two parameters, first one is required and the second is optional. If only first parameter is specified function will return true or false based on number belongs or not to primes. If second parameter is specified as true (or any other type except undefined and false) function will return array of primes from 2 to n. For example:

console.log(prime(2)); // returns true ( 2 is prime )
console.log(prime(8)); // returns false ( 8 isn't prime )

console.log(prime(100,true)); // returns [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

这篇关于需要在JavaScript中生成质数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆