どう書く?org : 最大公約数(除算禁止)

original page : http://ja.doukaku.org/106/

あなたが使っている言語で除算と剰余が使えなくなりました。

以下の条件のもと最大公約数を求めるプログラムを書いてください。

条件

* 除算および剰余の使用禁止

* 加算や乗算から除算・剰余を単純に定義することも禁止とする

* ただし, ビットシフトが面倒な場合には引数を2で割った商を返す関数を実装しても構わない

* 多倍長演算をサポートすること(各言語のライブラリ状況を見たいので)

* 引数は2つの正整数と仮定して構わない

* F_1=1, F_2=1のフィボナッチ数列で2000番目と1999番目の最大公約数を求めたときのループ回数を教えてください

#4803

original page : http://ja.doukaku.org/comment/4803/

数値解析系はこういうお題だと肩身が狭いですねw
お題や回答に対して色々なご意見があるのは当然で、
それが(ある程度)定量的に判断できる+/-評価システムは
うまく出来てるんだなぁと思いました。

library(gmp)
gcd(fibnum(1999), fibnum(2000))