blob: e0bd77d02c63ea3bdc3521358a6a71c1c90b4cf8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
-- Largest palindrome product
-- Problem 4
-- A palindromic number reads the same both ways.
-- The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
-- Find the largest palindrome made from the product of two 3-digit numbers.
main = do
print (maximum [x * y | x <- [0..999], y <- [0..999], is_palindrome (x * y)])
is_palindrome :: Int -> Bool
is_palindrome x = all (\(y, z) -> y == z) $ zip (show x) (rev' $ show x)
rev' :: [a] -> [a]
rev' [] = []
rev' (x:xs) = (rev' xs) ++ [x]
|