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

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

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.

Leave a Comment

88 − = 84