//PascalABC.NET 3.2 сборка 1318//Очередное решение "в лоб"Var n,i,j,max:integer; s,curr:string; b:boolean=false;beginreadln(n);max:=-1;s:=inttostr(n);for i:=1 to length(s) do begin curr:=''; for j:=i downto 1 do begin curr:=s[j]+curr; if frac(sqrt(strtoint(curr)))=0 then begin b:=true; if sqrt(strtoint(curr))>max then max:=round(sqrt(strtoint(curr))); end; end; end;if b then writeln(max) else writeln('0');end.Пример ввода 1:164Пример вывода 1:8Пример ввода 2:523Пример вывода 2:0