【初心者向け】JavaScript関数で因数分解をマスター!使い方と応用例10選

JavaScript関数で因数分解を学ぶ初心者JS
この記事は約6分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、JavaScriptで因数分解を行う関数を作成し、使い方や応用例を理解できるようになります。

初心者でも分かりやすい説明と、実際に使えるサンプルコードをご紹介していきます。

JavaScriptと関数の基本

○関数とは

関数とは、一連の処理をまとめたもので、特定の処理を何度も繰り返し実行する場合や、処理をモジュール化して再利用する場合に便利です。

○JavaScript関数の定義方法

JavaScriptの関数は、functionキーワードを使って定義します。

例えば、次のように関数を定義できます。

function 関数名(引数1, 引数2, ...){
  // 処理
  return 戻り値;
}

因数分解のアルゴリズム

○基本的なアルゴリズム

因数分解とは、ある数をその約数に分解することです。

例えば、12は1, 2, 3, 4, 6, 12の約数に分解できます。

このアルゴリズムを利用して、JavaScriptで因数分解を行う関数を作成していきます。

因数分解を行うJavaScript関数の作り方

○サンプルコード1:基本的な因数分解関数

下記のサンプルコードは、与えられた数値を因数分解する関数です。

function factorize(number) {
  let factors = [];
  for (let i = 1; i <= number; i++) {
    if (number % i === 0) {
      factors.push(i);
    }
  }
  return factors;
}

使い方と注意点

○因数分解関数の呼び出し

上記で定義した関数を使って、任意の数の因数分解を行うには、下記のように関数を呼び出します。

let number = 12;
let factors = factorize(number);
console.log(factors); // [1, 2, 3, 4, 6, 12]

○注意点

この関数は、非常に大きな数の因数分解には時間がかかる可能性があります。

より効率的なアルゴリズムを使った関数を作成することも可能ですが、今回の記事では基本的な方法に焦点を当てています。

応用例とサンプルコード

因数分解関数を応用して、さまざまな問題を解決できます。

ここでは、いくつかの応用例とそれに対応するサンプルコードを紹介します。

○サンプルコード2:最大公約数を求める関数

function gcd(a, b) {
  let factorsA = factorize(a);
  let factorsB = factorize(b);
  let commonFactors = factorsA.filter(factor => factorsB.includes(factor));
  return Math.max(...commonFactors);
}

○サンプルコード3:最小公倍数を求める関数

function lcm(a, b) {
  return (a * b) / gcd(a, b);
}

○サンプルコード4:素数判定関数

function isPrime(number) {
  let factors = factorize(number);
  return factors.length === 2;
}

○サンプルコード5:複数の数の因数分解

複数の数に対して因数分解を行い、それぞれの因数のリストを取得する関数です。

function factorizeMultipleNumbers(numbers) {
  let result = {};
  for (let number of numbers) {
    result[number] = factorize(number);
  }
  return result;
}

○サンプルコード6:因数の個数をカウント

与えられた数の因数の個数をカウントする関数です。

function countFactors(number) {
  let factors = factorize(number);
  return factors.length;
}

○サンプルコード7:因数分解を使った約数のリスト作成

ある範囲内の数に対して、それぞれの約数のリストを作成する関数です

function createDivisorList(range) {
  let divisorList = {};
  for (let i = 1; i <= range; i++) {
    divisorList[i] = factorize(i);
  }
  return divisorList;
}

○サンプルコード8:素因数分解の結果を表形式で表示

素因数分解の結果を表形式で表示する関数です。

function displayPrimeFactorizationTable(numbers) {
  let table = '';
  for (let number of numbers) {
    let primeFactors = factorize(number).filter(factor => isPrime(factor));
    table += `${number}: ${primeFactors.join(' × ')}\n`;
  }
  console.log(table);
}

○サンプルコード9:因数分解を使った総和計算

与えられた数の約数の総和を計算する関数です。

function sumOfFactors(number) {
  let factors = factorize(number);
  return factors.reduce((sum, factor) => sum + factor, 0);
}

○サンプルコード10:因数分解を利用した暗号化・復号化

因数分解を利用して、簡単な暗号化と復号化を行う関数です。

function encrypt(message, key) {
  let encrypted = '';
  for (let char of message) {
    encrypted += String.fromCharCode(char.charCodeAt(0) + key);
  }
  return encrypted;
}

function decrypt(encryptedMessage, key) {
  let decrypted = '';
  for (let char of encryptedMessage) {
    decrypted += String.fromCharCode(char.charCodeAt(0) - key);
  }
  return decrypted;
}

まとめ

この記事では、JavaScriptで因数分解を行う関数の作成方法や使い方、さまざまな応用例を紹介しました。

初心者でも理解しやすいように、サンプルコードと詳細な説明を提供しています。

ぜひ、これらのコードを参考にして、自分のプロジェクトで活用してみてください。