JavaScriptで指定した数値より大きい最初の素数を求める方法
本記事では、数値を引数として受け取り、その数値より大きい最初の素数を返すJavaScript関数の実装方法を解説します。
例えば、入力された数値が 24 の場合、24より大きい最初の素数は 29 となるため、出力は 29 になります。
実装の考え方
この問題は、以下の2つの処理を組み合わせることでシンプルに解決できます。
- 素数判定関数(isPrime):与えられた数値が素数かどうかを判定する
- 探索関数(nearestPrime):対象の数値を1ずつ増やしながら、素数が見つかるまで判定を繰り返す
コード例
以下が実際のコードです。
const num = 24;
// 素数かどうかを判定する関数
const isPrime = n => {
if (n === 1){
return false;
} else if (n === 2){
return true;
} else {
for (let x = 2; x < n; x++){
if (n % x === 0){
return false;
}
}
return true;
}
};
// nより大きい最初の素数を返す関数
const nearestPrime = num => {
while (!isPrime(++num)){};
return num;
};
console.log(nearestPrime(24));コードの解説
isPrime関数
isPrime関数は、引数 n が素数であるかを判定します。1は素数ではないため false を返し、2は唯一の偶数の素数であるため true を返します。それ以外の数値については、2から n-1 までの整数で順番に割り切れるかどうかを確認し、1つでも割り切れる数があれば合成数として false を返します。
nearestPrime関数
nearestPrime関数では、前置インクリメント(++num)によって数値を先に1増やしてから素数判定を行います。isPrime が true を返すまでループを続け、見つかった時点でその数値を返します。
出力結果
コンソールには以下のように出力されます。
29
このように、シンプルな素数判定とループ処理を組み合わせるだけで、任意の数値より大きい最初の素数を効率的に求めることができます。
-
JavaScriptのNumber()関数とは?使い方とサンプルコードを解説
JavaScriptのNumber()関数は、引数として渡された値やオブジェクトを、それに対応する数値へ変換するための関数です。真偽値や文字列型の数字、さらにはDateオブジェクトなども数値に変換できるため、データ型の変換処理において非常に便利な組み込み関数の一つです。例えば、Number(true)は「1」、Number(false)は「0」を返します。また、数字のみで構成された文字列「149」を渡せば数値の149に変換され、new Date()で生成した日付オブジェクトを渡すと、1970年1月1日からの経過ミリ秒数が返されます。以下に、Number()関数の動作を確認できるサンプルコードを
-
JavaScriptで数字パターンを表示する方法【初心者向けサンプルコード】
本記事では、テキスト入力欄とボタンを備えたJavaScript・HTMLプログラムの作成方法を解説します。ユーザーが入力欄に任意の数値(例:5)を入力してボタンをクリックすると、画面に以下のような数字パターンが表示される仕組みです。(n = 5 の場合の出力例)01 01 02 01 02 03 01 02 03 04 01 02 03 04 05仕組みのポイントこのパターンは二重ループ(ネストしたforループ)を使うことで実現できます。外側のループが「行」を制御し、内側のループがその行に表示する「数字の個数」を制御します。i 行目には 1 から i までの数字が順番に出力されるため、行が進む