C++でのユークリッドの互除法の実装と応用


まず、以下のような関数を定義します:

#include <iostream>
int euclideanAlgorithm(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}
int main() {
    int num1, num2;
    std::cout << "2つの整数を入力してください: ";
    std::cin >> num1 >> num2;

    int gcd = euclideanAlgorithm(num1, num2);
    std::cout << "最大公約数は: " << gcd << std::endl;

    return 0;
}

上記のコードでは、euclideanAlgorithm関数がユークリッドの互除法を実装しています。abを引数として受け取り、bが0になるまでループします。ループ内では、baで割った余りをbに代入し、aには一時変数tempを介して元のbの値を代入しています。これにより、abの値を更新しながら最大公約数を求めることができます。

main関数では、ユーザーに2つの整数を入力してもらい、euclideanAlgorithm関数を呼び出して最大公約数を求め、結果を表示しています。

この方法を使えば、2つの整数の最大公約数を求めることができます。また、このアルゴリズムは他の応用にも利用されます。例えば、最小公倍数を求めるために最大公約数を利用したり、有理数の約分を行う際にもユークリッドの互除法が使用されます。

以上がC++でのユークリッドの互除法の実装方法とその応用についての説明です。