Programa Capicua

Um número capicua tem o mesmo valor se lido da esquerda para a direita ou da direita para a esquerda. Exemplos: 55, 525, 1001. Faça um programa que calcule e mostre todos os números inteiros capicuas compreendidos entre 0 e 10.001 e que também sejam quadrados perfeitos. 


program capicua;
var n,k, quadrado_aux, aux, guardanumero : integer;
opc : char;
begin


repeat
writeln ('_____ NUMEROS CAPICUAS E QUE SAO QUADRADOS PERFEITOS ____');
writeln ('');


for n:=1 to 100 do
begin

quadrado_aux:=n*n;


for k:=1 to 10001 do
begin


aux := k;
GuardaNumero := 0;


while (aux <> 0) do
begin


GuardaNumero := GuardaNumero *10 +aux mod 10;
aux := aux div 10;


if (GuardaNumero  = k) then

begin
if (GuardaNumero = quadrado_aux) then
write (quadrado_aux, ' - ');
end;


end;


end;


end;


     writeln ('');
     repeat
     writeln ('');
     writeln ('####################################');
     writeln ('# Deseja executar novamente?       #');
     writeln ('# Digite: 1 para SIM | 2 para NAO  #');
     writeln ('####################################');
     readln (opc);
     Until (opc='2') OR (opc='1');


     Until (opc<>'1');


end.