{-# LANGUAGE NoMonomorphismRestriction #-} module Main where import Data.List.Ordered (minus) import Control.Monad (forM) n = [0, 3, 5, 6] a = n ++ map (15 -) (reverse n) b = [0..15] `minus` a main :: IO () main = do putStrLn $ show a ++ " " ++ show b forM [0..3] $ \p -> do putStrLn $ show (sum $ map (^p) a) ++ "\t" ++ show (sum $ map (^p) b) putStrLn ""