@@ -63,3 +63,7 @@ primeinf = 2:3:[n | n <- primecandidates, prime n]
choosePrime::Int -> Int
choosePrime b = head $ dropWhile (<= b) primeinf
+-- a -> b -> (g, u, v) where a * u + b * v = g with g GCD
+euclide::Int -> Int -> (Int, Int, Int)
+euclide a 0 = (a, 1, 0)
+euclide a b = let (d', u', v') = euclide b (mod a b) in (d', v', u' - (div a b) * v')