Go backward to Improvements Go up to Top Go forward to |
fun Euclid(m: N, n: N) recursive +(m, n) = if(=(m, 0), n, if(=(n, 0), m, if(<=(m, n), Euclid(m, -(n, m)), Euclid(-(m, n), n)))); fun Euclid'(m: N, n: N) recursive +(m, n) = if(=(m, 0), n, if(=(n, 0), m, if(<=(m, n), Euclid'(m, modN(n, m)), Euclid'(modN(m, n), n))));
Much faster than gcd!