Pythonでユークリッドの互除法

あるプログラムで、「Euclid's algorithm(ユークリッドアルゴリズム)」としてこのようなPythonのコードで最大公約数(greatest common divisor)をもとめていました。

def gcd(m,n):
	if m < 1.0:
		return 1.0
	if abs(n) < 0.01:
		return m
	return gcd(n,m % n)

ウィキペディアユークリッドの互除法の項目によると、この繰り返しの出力がmとnの最大公約数となるとされていて、上のコードにほぼ当てはまります。

1. 入力を m, n (m ≧ n) とする。
2. n = 0 なら、 m を出力してアルゴリズムを終了する。
3. n が m を割り切るなら、 n を出力してアルゴリズムを終了する。
4. m を n で割った余りを新たに m とし、更に m と n を取り替えて 3. に戻る。