素数とは、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 サイトの他の関連記事を参照してください。