program CheckPalindrome;
function IsPalindrome(num, reversed, original: Integer): Boolean;
begin
// Base case: If the number is reduced to 0, check the reverse against the original number
if num = 0 then
IsPalindrome := (reversed = original)
else
begin
// Extract the last digit, update the reversed number, and proceed recursively
reversed := reversed * 10 + (num mod 10);
IsPalindrome := IsPalindrome(num div 10, reversed, original);
end;
end;
var
number: Integer;
result: Boolean;
begin
number := 12321;
// Call the recursive function
result := IsPalindrome(number, 0, number);
if result then
WriteLn(number, ' is a palindrome.')
else
WriteLn(number, ' is not a palindrome.');
end.
(*
run:
12321 is a palindrome.
*)