ホームページ  >  記事  >  ウェブフロントエンド  >  指定された範囲内の素数を見つけるための JavaScript 実装コード共有

指定された範囲内の素数を見つけるための JavaScript 実装コード共有

黄舟
黄舟オリジナル
2017-03-18 14:51:082431ブラウズ

素数とは、1より大きい自然数で、1とそれ自体以外に他の因数を持たないものです。

この投稿では、指定された範囲内で素数を見つける方法を検討します。

は、次の特性を持つ 関数 を実装します:

1. getPrimes(0, 30) などの 2 つの境界を表す 2 パラメータを受け入れます。これは、0 を見つけることを意味します。 30 間のすべての素数。

2.2 つのパラメータのうちの最初のパラメータは、getPrimes(30, 0) のように 2 番目のパラメータよりも大きくすることができますが、これはやはり 0 から 30 までのすべての素数を見つけることを意味します。

3. 両方の境界値が考慮された範囲内にあります。

4. 戻り値は、範囲内のすべての素数を含む増加する 配列 です。

問題の考え方:

1. まず、素数を決定する方法が必要です。

2. パラメータを処理し、上限と下限を決定します。

3. 範囲内で逐次走査を行い、素数である限り配列に格納します。

コード実装:

//判断是否为质数
function isPrime(number) {
	//0,1,负数肯定不是
    if(number < 2){
        return false;
    }
    var factor = Math.sqrt(number);
	//注意:这里是"<=factor",而不是"<"
	//比如说25,factor是5,如果用"<"就会误判
    for(var i=2;i<=factor;i++){
        if(number % i == 0){
            return false;
        }
    }
    return true;
}

//获取范围内的质数
function getPrimes(start, finish) {
	//确定上边界
    var max = Math.max(start, finish);
	//确定下边界
    var min = Math.min(start, finish);
    var result = [];
	//由小到大遍历
    for(var i=min;i<=max;i++){
		//满足质数条件,存入数组
        if(isPrime(i)){
            result.push(i);
        }
    }
    return result;
}

//[]
console.log(getPrimes(0, 0)); 
//[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
console.log(getPrimes(0, 30));
//[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
console.log(getPrimes(30, 0));

以上が指定された範囲内の素数を見つけるための JavaScript 実装コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。