blob: b044c8553de3d0db9d1e5dcdb6aa10cd53fbb459 (
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
30
|
{-
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 :: Integer -> Integer -> Integer
gcd2 a 0 = a
gcd2 a b = gcd2 b (a `rem` b)
gcdn :: [Integer] -> Integer
gcdn = foldl1 gcd2
str2int :: String -> Integer
str2int = read
main :: IO ()
main = do
a <- getArgs
print $ gcdn (map str2int a)
|