これはおもしろい。Pythonプログラマの進化にみるfactorial計算の実装である。
Evolution of a Python programmer.py
http://gist.github.com/289467
"Enterprise programmer"の実装が涙をさそう。ちなみに、"Unix programmer"の実装はそれだけでは動作しなくて、引数を一つだけとり階乗計算をした値を返すfactorialというコマンドが必要だ。
僕なら最近お気に入りのmpmathを使うな。速いし、なにより倍精度、倍々精度の浮動小数点演算ができるから。
>>> from mpmath import *
>>> mp.pretty=True
>>> fac(10**10)
2.32579620567308e+95657055186