diff --git a/src/projectEuler/question4.hs b/src/projectEuler/question4.hs new file mode 100644 index 0000000..a234eaf --- /dev/null +++ b/src/projectEuler/question4.hs @@ -0,0 +1,21 @@ +-- https://projecteuler.net/problem=4 + +import Debug.Trace (trace) + +twoDigitProducts :: [Integer] +twoDigitProducts = [ n*m | n <- [10..99], m <- [n..99] ] + +isPalindrome :: Integer -> Bool +isPalindrome n = all (== True) $ zipWith (==) half half' + where + (half, half'') = splitAt h n' + half' = reverse half'' + h = length n' `div` 2 + n' = show n + -- n' = trace (show n) $ show n + +solve :: Integer +solve = maximum $ filter isPalindrome twoDigitProducts + +main :: IO () +main = print solve