まず、以下のような関数を定義します:
#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
関数がユークリッドの互除法を実装しています。a
とb
を引数として受け取り、b
が0になるまでループします。ループ内では、b
をa
で割った余りをb
に代入し、a
には一時変数temp
を介して元のb
の値を代入しています。これにより、a
とb
の値を更新しながら最大公約数を求めることができます。
main
関数では、ユーザーに2つの整数を入力してもらい、euclideanAlgorithm
関数を呼び出して最大公約数を求め、結果を表示しています。
この方法を使えば、2つの整数の最大公約数を求めることができます。また、このアルゴリズムは他の応用にも利用されます。例えば、最小公倍数を求めるために最大公約数を利用したり、有理数の約分を行う際にもユークリッドの互除法が使用されます。
以上がC++でのユークリッドの互除法の実装方法とその応用についての説明です。