program hp; var cislo, m, pocet, s, sp: longint; c: char; begin cislo:= 0; {načti číslo ukončené tečkou Hornerovým schématem} c:= '0'; while c<>'.' do begin cislo:= 2*cislo + ord(c)-ord('0'); read(c); end; m:= 10; {zjisti nejbližší nižší 10^{2^i} které dělí číslo} if cislo mod 10 = 0 then pocet:= 1 else pocet:= 0; while cislo mod (m*m) = 0 do begin m:= m * m; pocet:= 2*pocet; end; {"půlením intervalů" mezi 10^(2^(i+1)) a 10^(2^i) zjisti přesný počet nul} s:= round(sqrt(m)); sp:= pocet div 2; while sp > 0 do begin if cislo mod (m*s) = 0 then begin m:= m*s; pocet:= pocet+sp; end; s:= round(sqrt(s)); sp:= sp div 2; end; writeln('počet nul je ', pocet); end.