JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで指定した範囲内の素数の個数を求める方法

はじめに

本記事では、2つの数値を受け取り、その範囲内に存在する素数の総数を返すJavaScript関数の実装方法を解説します。引数として渡された2つの数値自体が素数である場合も、カウントに含めます。

具体例

例えば、a = 21、b = 38 が与えられたケースを考えてみましょう。

  • この範囲内に存在する素数は「23、29、31、37」の4つです
  • そのため、関数は 4 を返す必要があります

コード例

以下が実際のコードになります。

const isPrime = num => {
    let count = 2;
    while(count < (num / 2)+1){
        if(num % count !== 0){
            count++;
            continue;
        };
        return false;
    };
    return true;
};
const primeBetween = (a, b) => {
    let count = 0;
    for(let i = Math.min(a, b); i <= Math.max(a, b); i++){
        if(isPrime(i)){
            count++;
        };
    };
    return count;
};
console.log(primeBetween(21, 38));

コードの解説

isPrime 関数は、引数として渡された数値が素数かどうかを判定する関数です。2から順に割り算を行い、途中で割り切れる数が見つかった時点で素数ではないと判断し、false を返します。最後まで割り切れる数が見つからなければ、その数は素数であるため true を返します。

primeBetween 関数は、Math.minMath.max を使うことで、引数の大小関係に関係なく正しく動作します。小さい方の数値から大きい方の数値まで順番にループ処理を行い、各数値に対して isPrime を呼び出し、素数であればカウンターを1ずつ増やしていきます。最終的にカウントした合計値を返却します。

出力結果

コンソールには以下のように出力されます。

4
  1. JavaScriptで素数を生成する方法を解説!初心者向けサンプルコードと効率化のコツ

    素数とは、1とその数自身でしか割り切れない、2以上の自然数のことです。JavaScriptで素数を生成する最もシンプルな方法は、試し割り法(trial division)と呼ばれる手法です。これは、ある数値が2からその数未満までのいずれかの整数で割り切れるかどうかを順番にチェックし、一度も割り切れなければ素数と判定するというものです。ここでは、2〜20の範囲から素数を見つけ出して表示するサンプルコードを紹介します。サンプルコード<script> // 2〜20の各数値について素数かどうかを判定 for (var limit = 2; limit <= 20; limit+

  2. JavaScriptの数値(Number)の基本と実践サンプルコード

    JavaScriptでは、整数も小数もすべて「Number」型として扱われます。この記事では、数値変数の定義方法と、それらを使った簡単な演算の例を、動作するHTMLサンプルコードとともに紹介します。サンプルコード以下は、JavaScriptで数値を扱う基本的な例です。整数(22、99)と小数(1.523)を変数に格納し、ボタンをクリックすると画面に表示する仕組みになっています。<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co