int gcd(int a, int b) { int temp; while (b != 0) { temp = a % b; a = b; b = temp; } return a; }方法 2: ユークリッド アルゴリズムユークリッド アルゴリズムはユークリッド アルゴリズムです。 2 つの数の約数と余りの関係、つまり a = bq r を使用する除算の拡張方法。ユークリッド アルゴリズムの中心的な考え方は、大きい数を小さい数で除算し、その余りを次の被除数として繰り返し使用することです。余りが 0 の場合、最後の約数が最大公約数になります。 次は、ユークリッド アルゴリズムを使用して最大公約数を見つける C 言語コードの例です。
int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); }方法 3: 網羅的メソッド網羅的メソッドは直感的なものです。可能なすべての約数を調べて最大公約数を見つける方法。効率は劣りますが、少数の場合にはうまく機能します。 次は、網羅的方法を使用して最大公約数を見つける C 言語のコード例です。
int gcd(int a, int b) { int i, gcd = 1; for (i = 1; i <= a && i <= b; i++) { if (a % i == 0 && b % i == 0) gcd = i; } return gcd; }方法 4: 素因数分解方法素因数分解方法は次のとおりです。 a メソッド 2 つの数値を素因数に分解し、それらの共通約数を見つける方法。最大公約数は、2 つの数値を素因数の積に分解し、共通の素因数を見つけてそれらを掛け合わせることで求められます。 以下は、素因数分解法を使用して最大公約数を求める C 言語コードの例です。
int gcd(int a, int b) { int i, gcd = 1; for (i = 2; i <= a && i <= b; i++) { while (a % i == 0 && b % i == 0) { gcd *= i; a /= i; b /= i; } } return gcd; }これらのメソッドは、さまざまなシナリオで独自の適用可能性があります。ユークリッド除算法とユークリッド アルゴリズムは 2 つの数値の最大公約数を解くのに適しており、網羅的方法はより小さい数値に適しており、素因数分解規則は複数の数値の最大公約数を解く必要がある状況に適しています。 まとめると、C言語で最大公約数を求める方法には、ユークリッド除算、ユークリッドアルゴリズム、網羅法、素因数分解法などがあります。適切な方法を選択することで、複数の数値の最大公約数を効率的に見つけることができます。 注: これらのコード例を使用する場合は、プログラムの正確さと堅牢性を確保するために、適切な入力検出とエラー処理を自分で追加する必要があります。
以上がC言語を使った最大公約数の求め方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。