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.