Files
AdventOfCode2024/src/Day22.hs
Daniele Fucini ca9b64a8e6 Day 22, Part 1
2024-12-22 09:52:47 +01:00

18 lines
521 B
Haskell

module Day22 (day22_1) where
import Data.Bits
getSecretNumber :: Integer -> Int -> Integer
getSecretNumber x 0 = x
getSecretNumber x n =
let x' = ((x `shiftL` 6) `xor` x) `mod` 16777216
x'' = ((x' `shiftR` 5) `xor` x') `mod` 16777216
in getSecretNumber (((x'' `shiftL` 11) `xor` x'') `mod` 16777216) (n - 1)
day22_1 :: IO ()
day22_1 = do
contents <- map read . lines <$> readFile "input/day22.txt"
putStrLn $
"Day 22, Puzzle 1 solution: "
++ show (sum $ map (`getSecretNumber` 2000) contents)