割り切れる必要があります。公約数であることがわかります。最大公約数に等しいことが証明されました。して同じ計算をすればいいわけです。最大公約数になります。プログラムは再帰定義を使って簡単に作ることができます。最大公約数を求めます。これが再帰呼び出しの停止条件になります。最大公約数を求めます。ユークリッドの互除法の定義をそのままプログラムしただけです。このように、再帰定義を使うと簡単にプログラムを作ることができます。それでは実行例を示しましょう。5最小公倍数は最大公約数を使って簡単に求めることができます。求めることができます。70●末尾再帰と繰り返し再帰定義のなかで、処理の最後で再帰呼び出しを行う場合を「末尾再帰」といいます。日本語では末尾再帰のほかに末端再帰とか終端再帰と呼ぶことがあります。末尾再帰は簡単な処理で繰り返しに変換できることが知られています。プログラムをコンパイルもしくは実行するときに、末尾再帰を繰り返しに変換する処理系があります。ように、言語仕様に末尾再帰最適化を行うことを明記しているプログラミング言語もあります。返り値を乗算しているので、このプログラムは末尾再帰ではありません。返り値をそのまま返しているので、このプログラムは末尾再帰になっています。これで階乗を計算できるなんて、ちょっと不思議に思われるかもしれません。そこが再帰呼び出しの面白いところです。使い方がポイントです。