# Problem Definition

Available at Largest Palindrome Product

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.

Implementation

We have to find out a palindrome p such that —

where both a and b are three digit number. To do so, we first define a function that checks whether a number (e.g., p) is a palindrome.

let ispalindrom (x:int):bool = | |

let s = x.ToString() | |

s = (s |> (fun x -> new string(x.ToCharArray() |> Array.rev))) |

Then, we iterate over all the tuples (a,b) of three digit numbers e.g., [100..999] that satisfy the following equation.

Finally, we check if a*b is a palindrome and get the largest palindrome, as outlined below.

seq{ | |

for x in 100..999 do | |

for y in x..999 do | |

if ispalindrom (x*y) then yield (x*y)} | |

|> Seq.max |

Would/did you solve it differently? Please let me know your opinion in the comment section below.

Happy problem solving …