program LargestPalindrome;
function IsPalindrome(num: Integer): Boolean;
var
temp, rev, digit: Integer;
begin
temp := num;
rev := 0;
while temp > 0 do
begin
digit := temp mod 10;
rev := rev * 10 + digit;
temp := temp div 10;
end;
IsPalindrome := rev = num;
end;
function GetLargestPalindromeOfTwo2DigitNumbers: Integer;
var
i, j, product, largestPalindrome: Integer;
begin
largestPalindrome := 0;
for i := 10 to 99 do
for j := 10 to 99 do
begin
product := i * j;
if IsPalindrome(product) and (product > largestPalindrome) then
largestPalindrome := product;
end;
GetLargestPalindromeOfTwo2DigitNumbers := largestPalindrome;
end;
begin
writeln('The largest palindrome made from the product of two 2-digit numbers is: ', GetLargestPalindromeOfTwo2DigitNumbers);
end.
(*
run:
The largest palindrome made from the product of two 2-digit numbers is: 9009
*)