数値操作

Java – 3つの値から最小公倍数を計算する方法

3つの値の最小公倍数(LCM)を計算するには、まず2つの値の最小公倍数を求め、その結果と3つ目の値を使って再度最小公倍数を計算します。

最小公倍数は、2つの値の積をその最大公約数(GCD)で割ることで求められます。

具体的には、2つの値\(a\)と\(b\)の最小公倍数は\(\text{LCM}(a, b) = \frac{|a \cdot b|}{\text{GCD}(a, b)}\)です。

これを3つの値に拡張し、\(\text{LCM}(\text{LCM}(a, b), c)\)を計算します。

Javaでは、GCDの計算にMath.gcd(Java 8以降)を使用できます。

Javaで最小公倍数を計算する基本的な手順

最小公倍数(LCM)は、与えられた整数の中で最も小さい共通の倍数です。

Javaで最小公倍数を計算するための基本的な手順は以下の通りです。

手順説明
12つの整数の最大公約数(GCD)を計算する
2GCDを使って最小公倍数を求める
33つの整数に対して同様の手順を適用する

最小公倍数は次の数式で表されます:

\[\text{LCM}(a, b) = \frac{|a \times b|}{\text{GCD}(a, b)}\]

ここで、\(a\)と\(b\)は対象の整数です。

この数式を利用して、3つの整数の最小公倍数を計算することができます。

次のセクションでは、GCDを計算する方法について詳しく説明します。

JavaでGCDを計算する方法

最大公約数(GCD)は、与えられた整数の中で最も大きい共通の約数です。

Javaでは、GCDを計算するためにユークリッドの互除法を使用することが一般的です。

この方法は、次のように定義されます。

  1. 2つの整数 \(a\) と \(b\) が与えられたとき、\(b\) が0でない限り、次の操作を繰り返します。
  2. \(a\) を \(b\) で割った余りを新しい \(b\) とし、元の \(b\) を新しい \(a\) とします。
  3. \(b\) が0になったときの \(a\) がGCDです。

以下は、JavaでGCDを計算するサンプルコードです。

public class App {
    public static void main(String[] args) {
        int num1 = 48; // 最初の整数
        int num2 = 18; // 2番目の整数
        
        int gcd = calculateGCD(num1, num2); // GCDを計算
        
        System.out.println("GCD: " + gcd); // 結果を表示
    }
    // GCDを計算するメソッド
    public static int calculateGCD(int a, int b) {
        while (b != 0) { // bが0でない限り繰り返す
            int temp = b; // 一時変数にbを保存
            b = a % b; // aをbで割った余りを新しいbに
            a = temp; // 一時変数の値を新しいaに
        }
        return a; // GCDを返す
    }
}

このコードを実行すると、次のような出力が得られます。

GCD: 6

このようにして、2つの整数の最大公約数を計算することができます。

次のセクションでは、3つの整数の最小公倍数を計算する方法について説明します。

3つの値の最小公倍数を計算する実装方法

3つの整数の最小公倍数(LCM)を計算するためには、まず2つの整数の最小公倍数を求め、その結果を3つ目の整数と組み合わせて再度最小公倍数を計算します。

具体的には、次の手順を踏みます。

  1. 最初の2つの整数のGCDを計算し、最小公倍数を求める。
  2. 得られた最小公倍数と3つ目の整数のGCDを計算し、最終的な最小公倍数を求める。

この手法を用いたJavaのサンプルコードは以下の通りです。

public class App {
    public static void main(String[] args) {
        int num1 = 12; // 最初の整数
        int num2 = 15; // 2番目の整数
        int num3 = 20; // 3番目の整数
        
        int lcm = calculateLCM(num1, num2, num3); // LCMを計算
        
        System.out.println("最小公倍数: " + lcm); // 結果を表示
    }
    // 3つの整数の最小公倍数を計算するメソッド
    public static int calculateLCM(int a, int b, int c) {
        int lcmAB = (a * b) / calculateGCD(a, b); // 最初の2つの整数のLCM
        return (lcmAB * c) / calculateGCD(lcmAB, c); // 3つ目の整数とのLCM
    }
    // GCDを計算するメソッド
    public static int calculateGCD(int a, int b) {
        while (b != 0) { // bが0でない限り繰り返す
            int temp = b; // 一時変数にbを保存
            b = a % b; // aをbで割った余りを新しいbに
            a = temp; // 一時変数の値を新しいaに
        }
        return a; // GCDを返す
    }
}

このコードを実行すると、次のような出力が得られます。

最小公倍数: 60

このようにして、3つの整数の最小公倍数を計算することができます。

最初に2つの整数の最小公倍数を求め、その結果を使って3つ目の整数との最小公倍数を計算することで、効率的にLCMを求めることができます。

まとめ

この記事では、Javaを用いて3つの整数の最小公倍数を計算する方法について詳しく解説しました。

具体的には、最大公約数を求める手法や、2つの整数の最小公倍数を基にして3つ目の整数との最小公倍数を計算する方法を紹介しました。

これを機に、実際にJavaでのプログラミングに挑戦し、さまざまな数値計算を行ってみてはいかがでしょうか。

関連記事

Back to top button