う〜ん、ブログにも書かれてたのだけど……
> 最大 greatest 公 common 約数 divisor なので、gcm ではなく gcd です。
G.C.D.が一般的みたいですが、一応、
G.C.M.(greatest common measure)
という用語もあるんですよ(measure = 測る単位という意味で「約数」)
……よっぽどマイナーなのかしらん、この言葉。
※あるいは、プログラムのライブラリとかは全てgcdなのかな?
> def gcd(a, b):
> while b:
> a, b = b, a % b
> return a
>
> の方が私は「簡単」だと思います。いきなり ZeroDivisionError を吐いたり
> しませんし、再帰で限界が来たりもしません。入力に 0 を許さないとか、大
> きな数は扱わない、という*仕様*であれば反対する理由はありませんけど。
う〜ん、確かにこのほうがわかりやすいですね(タプル展開はPythonの最強兵
器の一つですし)
ちなみに、私の書いたプロトタイプは、再帰を使った上に条件が3分岐するア
ヤシイモノだったりします。
私は別に再帰の信奉者じゃないですけど、このタイプの場合は、かなり大きな
数値になっても再帰の限界はきませんので、よほど大丈夫かと。
それに、0の最大公約数なんてわけのわからんモノが計算できてしまうより、
素直に「ふざけんじゃねーよ、ゼロ以外にきまってんだろっ!」とぶーたれる方
が良かったりしません?(笑)
/機械伯爵/アルゴリズム事典が書類に埋もれて紛失中/