Greatest common divisor: Difference between revisions
Content added Content deleted
(added scheme) |
(Added Haskell example) |
||
Line 188: | Line 188: | ||
<code>gcd_bin(40902, 24140)</code> takes us about '''2.5''' usec |
<code>gcd_bin(40902, 24140)</code> takes us about '''2.5''' usec |
||
=={{header|Haskell}}== |
|||
That is already available as the function ''gcd'' in the Prelude. Here's the implementation: |
|||
gcd :: (Integral a) => a -> a -> a |
|||
gcd 0 0 = error "Prelude.gcd: gcd 0 0 is undefined" |
|||
gcd x y = gcd' (abs x) (abs y) where |
|||
gcd' a 0 = a |
|||
gcd' a b = gcd' b (a `rem` b) |
|||
=={{header|J}}== |
=={{header|J}}== |