C++には、標準ライブラリである <numeric>
ヘッダに std::gcd
という関数が用意されています。この関数を使用すると、簡単に最大公約数を求めることができます。以下に、std::gcd
関数を使用した最大公約数の求め方の例を示します。
#include <iostream>
#include <numeric>
int main() {
int num1 = 24;
int num2 = 36;
int gcd = std::gcd(num1, num2);
std::cout << "最大公約数: " << gcd << std::endl;
return 0;
}
上記のコードでは、num1
と num2
の最大公約数を求めています。std::gcd
関数は、C++17以降で利用可能です。
もし、C++17以前のバージョンを使用している場合や、標準ライブラリを使用したくない場合は、自前で最大公約数を求める関数を実装することもできます。以下に、ユークリッドの互除法を用いた最大公約数の求め方の例を示します。
#include <iostream>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int num1 = 24;
int num2 = 36;
int gcd_result = gcd(num1, num2);
std::cout << "最大公約数: " << gcd_result << std::endl;
return 0;
}
上記のコードでは、gcd
関数を定義し、ユークリッドの互除法を使って最大公約数を求めています。
これらの方法を使用すると、C++で二つの数値の最大公約数を求めることができます。自分のプログラムに適した方法を選択し、必要に応じてコードをカスタマイズしてください。