euclid a b
| a
<= 0 && b
<= 0 = error "GCD works for Numbers" | a == b = a
| a > b = euclid (a - b) b
main
= do putStrLn "Enter the first number:" let a' = read a :: Int
putStrLn "Enter the second number:"
b <- getLine
putStrLn $ "The GCD of " ++ a
++ " and " ++ b
++ " is " ++ show (euclid a
' b')
ZXVjbGlkIDo6IEludCAtPiBJbnQgLT4gSW50CmV1Y2xpZCBhIGIgfCBhIDw9IDAgJiYgYiA8PSAwID0gZXJyb3IgIkdDRCB3b3JrcyBmb3IgTnVtYmVycyIKICAgICAgICAgICB8IGEgPT0gYiA9IGEKICAgICAgICAgICB8IGEgPiBiID0gZXVjbGlkIChhIC0gYikgYgogICAgICAgICAgIHwgb3RoZXJ3aXNlID0gZXVjbGlkIGEgKGIgLSBhKQptYWluIDo6IElPKCkKbWFpbiA9IGRvIHB1dFN0ckxuICJFbnRlciB0aGUgZmlyc3QgbnVtYmVyOiIKICAgICAgICAgIGEgPC0gZ2V0TGluZQogICAgICAgICAgbGV0IGEnID0gcmVhZCBhIDo6IEludAogICAgICAgICAgcHV0U3RyTG4gIkVudGVyIHRoZSBzZWNvbmQgbnVtYmVyOiIKICAgICAgICAgIGIgPC0gZ2V0TGluZQogICAgICAgICAgbGV0IGInID0gcmVhZCBiIDo6IEludAogICAgICAgICAgcHV0U3RyTG4gJCAiVGhlIEdDRCBvZiAiICsrIGEgKysgIiBhbmQgIiArKyBiICsrICIgaXMgIiArKyBzaG93IChldWNsaWQgYScgYicpCg==