//PascalABC.NET 3.2 сборка 1318 //Очередное решение "в лоб"
Var n,i,j,max:integer; s,curr:string; b:boolean=false; begin readln(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
//Очередное решение "в лоб"
Var
n,i,j,max:integer;
s,curr:string;
b:boolean=false;
begin
readln(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