module Main (main) where --import Data.Integer decimalShift :: Integer -> Integer -> Integer decimalShift a b = a * 10^b toDouble :: Integer -> Double toDouble = fromInteger main :: IO () main = do putStrLn $ show (1 :: Integer) putStrLn $ show (12 :: Integer) putStrLn $ show (123 :: Integer) putStrLn $ show (1234 :: Integer) putStrLn $ show (12345 :: Integer) putStrLn $ show (123456 :: Integer) putStrLn $ show (1234567 :: Integer) putStrLn $ show (12345678 :: Integer) putStrLn $ show (123456789 :: Integer) putStrLn $ show (1234567890 :: Integer) putStrLn $ show (1234567890 `decimalShift` 1 :: Integer) putStrLn $ show (1234567890 `decimalShift` 2 :: Integer) putStrLn $ show (1234567890 `decimalShift` 3 :: Integer) putStrLn $ show (1234567890 `decimalShift` 4 :: Integer) putStrLn $ show (1234567890 `decimalShift` 15 :: Integer) putStrLn $ show (1234567890 `decimalShift` 30 :: Integer) putStrLn "-----------------------" putStrLn $ show (0 :: Integer) putStrLn "-----------------------" putStrLn $ show (-1 :: Integer) putStrLn $ show (-12 :: Integer) putStrLn $ show (-123 :: Integer) putStrLn $ show (-1234567890 :: Integer) putStrLn $ show (-1234567890-1234567890 :: Integer) putStrLn "-----------------------" putStrLn $ show (1 :: Integer) putStrLn $ show (1+2 :: Integer) putStrLn $ show (1+2+3 :: Integer) putStrLn $ show (1+2+3+4 :: Integer) putStrLn $ show (1+2+3+4+5 :: Integer) putStrLn "-----------------------" putStrLn $ show (1+1 :: Integer) putStrLn $ show (12+12 :: Integer) putStrLn $ show (123+123 :: Integer) putStrLn $ show (1234567890+1234567890 :: Integer) putStrLn $ show (1234567890+1234567890+1234567890+1234567890 :: Integer) putStrLn "-----------------------" putStrLn $ show (1234567890 +1234567890 +2000000000 +2000000000 +2000000000 +2000000000 +2000000000 +2000000000 :: Integer) putStrLn $ "-----------------" putStrLn $ show (1-1 :: Integer) putStrLn $ show (12-12 :: Integer) putStrLn $ show (123-123 :: Integer) putStrLn $ show (1234567890-1234567890 :: Integer) putStrLn $ show (1234567890+1234567890-1234567880 :: Integer) putStrLn "-----------------------" putStrLn $ show (read "12345" :: Integer) putStrLn $ show (read "1234567890" :: Integer) putStrLn $ show (read "123456789012345" :: Integer) putStrLn $ show (read "12345678901234567890" :: Integer) putStrLn $ show (read "-12345" :: Integer) putStrLn $ show (read "-1234567890" :: Integer) putStrLn $ show (read "-123456789012345" :: Integer) putStrLn $ show (read "-12345678901234567890" :: Integer) putStrLn $ show (read "0" :: Integer) putStrLn $ show (read "0012345" :: Integer) putStrLn $ show (read "000000000012345" :: Integer) putStrLn "-----------------------" putStrLn $ show (1*1 :: Integer) putStrLn $ show (12*12 :: Integer) putStrLn $ show (123*123 :: Integer) putStrLn $ show (1234*1234 :: Integer) putStrLn $ show (12345*12345 :: Integer) putStrLn $ show (123456*123456 :: Integer) putStrLn $ show (1234567*1234567 :: Integer) putStrLn $ show (12345678*12345678 :: Integer) putStrLn $ show (123456789*123456789 :: Integer) putStrLn $ show (1234567890*1234567890 :: Integer) putStrLn $ show (987654*287 :: Integer) putStrLn "-----------------------" putStrLn $ show (1234567890*10^10 + 1 :: Integer) putStrLn $ show (1234567890*10^10 + 12 :: Integer) putStrLn $ show (1234567890*10^10 + 123 :: Integer) putStrLn $ show (1234567890*10^10 + 1234 :: Integer) putStrLn $ show (1234567890*10^10 + 12345 :: Integer) putStrLn $ show (1234567890*10^10 + 123456 :: Integer) putStrLn $ show (1234567890*10^10 + 1234567 :: Integer) putStrLn $ show (1234567890*10^10 + 12345678 :: Integer) putStrLn $ show (1234567890*10^10 + 123456789 :: Integer) putStrLn $ show (1234567890*10^10 + 1234567890 :: Integer) putStrLn $ "-----------------" putStrLn $ show $ toDouble (1*1 :: Integer) putStrLn $ show $ toDouble (12*12 :: Integer) putStrLn $ show $ toDouble (123*123 :: Integer) putStrLn $ show $ toDouble (1234*1234 :: Integer) putStrLn $ show $ toDouble (12345*12345 :: Integer) putStrLn $ show $ toDouble (123456*123456 :: Integer) putStrLn $ show $ toDouble (1234567*1234567 :: Integer) putStrLn $ show $ toDouble (12345678*12345678 :: Integer) putStrLn $ show $ toDouble (123456789*123456789 :: Integer) putStrLn $ show $ toDouble (1234567890*1234567890 :: Integer) putStrLn $ show $ toDouble (987654* (-287) :: Integer) putStrLn "-----------------------" putStrLn $ show $ 0`quotRem`(1 :: Integer) putStrLn $ show $ 12`quotRem`(1 :: Integer) putStrLn $ show $ 123`quotRem`(12 :: Integer) putStrLn $ show $ 1234`quotRem`(123 :: Integer) putStrLn $ show $ 12345`quotRem`(1234 :: Integer) putStrLn $ show $ 123456`quotRem`(12345 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(read "1234567890123456780" :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(342 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(3421 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(53421 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(653421 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(7653421 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(87653421 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(987653421 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(987653421*10 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(987653421*100 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(987653421*1000 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(987653421*10000 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(987653421*100000 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(987653421*1000000 :: Integer) putStrLn $ show $ (read "1234567890123456789")`quotRem`(987653421*10000000 :: Integer) putStrLn "-----------------------" putStrLn $ show $ (read "1234567890123456789")`quotRem`(read "1234567890123456780" :: Integer) putStrLn $ show $ (read "123456789012345678901234567890")`quotRem`(read "1234567890123456789" :: Integer) putStrLn $ show $ (read "123456789012345678901234567890")`quotRem`(read "123456789012345678" :: Integer) putStrLn $ show $ (read "123456789012345678901234567890")`quotRem`(read "12345678901234567" :: Integer) putStrLn $ show $ (read "123456789012345678901234567890")`quotRem`(read "1234567890123456" :: Integer) putStrLn $ show $ (read "123456789012345678901234567890")`quotRem`(read "123456789012345" :: Integer) putStrLn $ show $ (read "123456789012345678901234567890")`quotRem`(read "12345678901234" :: Integer) putStrLn "-----------------------" putStrLn $ show $ quotRem (read "121200000000") (read "1200000000"::Integer)