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

JavaScriptで数値の各桁の素数を合計する方法

本記事では、JavaScriptで1つの数値を受け取り、その各桁の中から素数である数字のみを合計して返す関数の作成方法を解説します。

問題の概要

引数として1つの数値を受け取るJavaScript関数を作成します。この関数は、その数値を構成する各桁のうち、素数となる数字(2、3、5、7)だけを抜き出して合計し、その結果を数値として返す必要があります。

具体例

例えば、入力が以下の場合:

const num = 67867852;

期待される出力は次のとおりです:

const output = 21;

これは、67867852 の各桁(6、7、8、6、7、8、5、2)のうち、素数である「7」「7」「5」「2」を足した 7 + 7 + 5 + 2 = 21 となるためです。

実装コード

以下が実際のコード例です:

const num = 67867852;
const sumPrimeDigits = (num) => {
    const primes = '2357';
    let sum = 0;
    while(num){
        const digit = num % 10;
        if(primes.includes('' + digit)){
            sum += digit;
        };
        num = Math.floor(num / 10);
    };
    return sum;
};
console.log(sumPrimeDigits(num));

コードの解説

この関数の仕組みを順番に見ていきましょう。

  • primes = '2357':一桁の素数は 2、3、5、7 の4つだけなので、それらを文字列として定義しています。
  • num % 10:10で割った余りを求めることで、数値の一番右の桁(一の位)を取り出します。
  • primes.includes():取り出した桁が素数リストに含まれているかどうかを判定し、含まれていれば合計値に加算します。
  • Math.floor(num / 10):10で割った結果の小数点以下を切り捨てることで、処理済みの桁を削除します。num が 0 になるまでこの流れを繰り返します。

文字列の includes() メソッドを使うことで、複雑な条件分岐を書くことなく、シンプルに素数判定ができるのがポイントです。

出力結果

コンソールには以下のように表示されます:

21
  1. JavaScriptで数値の各桁の数字を一つずつ分割表示する方法

    はじめに この記事では、ユーザーが入力した数値を検証し、有効な数値であればその各桁の数字を画面に一つずつ表示するJavaScriptプログラムの作り方を解説します。 動作イメージ ページ上のボタンをクリックすると入力ダイアログが開き、そこに数値を入力してOKを押すと、入力された数値の各桁が一行ずつ画面に出力される仕組みです。 例えば、入力が次のような場合—— 43354 画面には次のように表示されます。 4 3 3 5 4 完成コード HTML <!DOCTYPE html> <html>   <head>   &n

  2. C++で数値の桁の再帰的な合計が素数かどうかを判定する方法

    整数変数 number を入力として受け取り、その各桁の合計を計算して、合計値が素数かどうかを判定する問題について解説します。この処理は、桁の合計が一桁になるまで繰り返され、最終的に得られた一桁の数値が素数であるかどうかを確認します。たとえば、入力が 123 の場合、桁の合計は 1+2+3=6 となり、6 は素数ではないため、結果は「素数ではない」となります。 入出力シナリオの例 入力 − number = 12341 出力 − 桁の再帰的な合計は素数(PRIME) 説明 − 1+2+3+4+1 = 111+1 = 22 は素数です。 入力 − number = 1664 出力 − 桁の再帰