関数を使って最大公約数を求める

C++Beginner
オンラインで実践に進む

はじめに

この実験では、C++ の関数を使って 2 つの数の最大公約数(Greatest Common Divisor: GCD)を求める方法を学びます。GCD は、与えられた 2 つの数を割り切る最大の数です。再帰的なアプローチを使って関数を実装します。

新しい C++ ファイルを作成する

~/project ディレクトリに main.cpp という名前の新しい C++ ファイルを作成します。

touch ~/project/main.cpp

ライブラリをインクルードする

ファイルに必要なライブラリをインクルードします。

#include<iostream>

最大公約数を計算する関数を定義する

2 つの整数型の引数を入力として受け取り、整数型を出力として返す再帰関数 gcd() を定義します。この出力は、2 つの入力数の GCD になります。

int gcd(int a, int b) {
    if (a == 0 || b == 0)
        return 0;
    else if (a == b)
        return a;
    else if (a > b)
        return gcd(a - b, b);
    else
        return gcd(a, b - a);
}

メイン関数を書く

main() 関数で、2 つの整数型の変数を宣言して値を代入します。その後、これら 2 つの変数をパラメータとして gcd() 関数を呼び出し、結果を出力します。

int main() {
    int a = 105, b = 30;
    std::cout << "GCD of " << a << " and " << b << " is " << gcd(a,b) << std::endl;
    return 0;
}

プログラムをコンパイルして実行する

ファイルに加えた変更を保存して終了します。以下の端末コマンドを使ってプログラムをコンパイルします。

g++ main.cpp -o main

プログラムを実行するには、端末に以下のコマンドを入力します。

./main

出力

プログラムを実行した後、端末には以下のように出力されます。

GCD of 105 and 30 is 15

まとめ

この実験では、C++ の再帰関数を使って 2 つの数の最大公約数(GCD)を求める方法を学びました。これは、コンピュータサイエンスと数学において便利な応用です。