Найдите целые числа, меньшие n, которые при возведении в квадрат дают палиндромы

Например, 26 во второй степени = 676.

code: #pascal
program er;
var n,i:longint;
 
function polin(n:longint):boolean; {начало функции, определяющей - явл. ли число полиномом}
var i,j:longint;  {переменные для циклов}
    s:string;
    itog:boolean; {результирующая переменная}
 
begin  {начало выполнения функции}
itog:=true;  {изначально переменная - ПОЛИНОМ}
str(n,s); {число преврашаем в строку}
if length(s)=1 then itog:=false; {если число из одной цифры - то оно - НЕПОЛИНОМ}
for i:=1 to length(s) do begin {идём циклом с начала строки}
j:=length(s)-i+1; {и с конца}
if s[i]<>s[j] then itog:=false;   end; {и если соответствующие цифры не равны - то - НЕПОЛИНОМ}
polin:=itog; {результат Присваиваем самой функции}
end;
 
{начало самой программы}
begin
write('Vvedite N: '); readln(n); {считываем с клавы значение N}
 
writeln('Eti CISLA: ');
for i:=1 to n do {циклом идём от 1 до N}
if polin(i*i) then  {если текущее число явдляется полиномом...}
writeln(i,'  (',i*i,')'); {то выводим его}
 
readln;
end.      
Поделиться:

Похожие статьи: