Теоретическое решение

Вариантов решения задач огромное множество. Рассмотрим два случая, когда введенное число так и остается числом на протяжении всего алгоритма, и когда введенное число преобразуется в строку и алгоритм уже реализуется со строкой.

1 случай

Необходимо реализовать один цикл с индикатором,  который будет отделять первую и последнюю цифру числа и сравнивать, если получаем верное равенство, то  индикатору присваиваем true (1), в противном случае false(0). В результате прохождения цикла, если индикатор остался равным true(1), значит это палиндром.

Язык программирования Pascal

program r;
var a,c,d,indikator:longint;
begin
readln(a);
    d:=10000;
    indikator:=0;
    c:=a;
while a>0 do
   begin
   if ((a mod 10)=((c div d) mod 10))then indikator:=1
   else
     begin
       indikator:=0;break;
     end;
      a:= a div 10;
      d:=d div 10;
    end;
if (indikator=1) then write('YES')
else write('NO');
end.

 

 

 

2 случай

Переводим число в строку и начинаем сравнивать первый и последний элемент строки в цикле пока не дойдем до середины числа. Если числа при сравнении равные, то индикатор true(1), иначе false(0) и при этом цикл сразу останавливается.

Язык программирования Pascal

program xxx;
var s: string;
    d,i,len,ind:longint;
begin
readln(d);
  str(d,s);
  len:=Length(s);
  ind:=0;
for i:=1 to len do
   if s[i]=s[len-i+1]

        then ind:=1
   else  

       begin ind:=0;break;end;

if (ind=1) then write('YES')
   else write('NO');
end.