blob: e868a1be5cedc8bce1cf695e7425e168fc7996bd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
{-
Usage:
$ runhaskell gcd.hs 22 11
11
or:
$ ghc gcd.hs -o gcd-hs
$ ./gcd-hs 11 22 121
11
-}
import System.Environment (getArgs)
gcd2 :: Integral a => a -> a -> a
gcd2 a 0 = a
gcd2 a b = gcd2 b (a `rem` b)
gcdn :: Integral a => [a] -> a
gcdn = foldl1 gcd2
out :: [String] -> IO ()
out [] = return ()
out a = print (gcdn (map read a) :: Integer)
main :: IO ()
main = getArgs >>= out
|