In today’s Programming Praxis exercise, our goal is to determine all the numbers that are not McNugget numbers, i.e. numbers that cannot be created by summing multiples of 6, 9 and 20. Let’s get started, shall we?
A quick import:
The code is pretty straightforward: just take all the numbers up to 180 that cannot be created by a linear combination of 6, 9 and 20.
notMcNuggets :: [Integer] notMcNuggets = [1..180] \\ [a+b+c | a <- [0,6..180], b <- [0,9..180-a], c <- [0,20..180-a-b]]
To test whether everything works correctly:
main :: IO () main = print notMcNuggets
Yup. Nice and simple.