DIGIT0 - Số 0 tận cùng
Tác giả: flashmt
Ngôn ngữ: Pascal
const max=10000;
var a:array['a'..'z'] of longint;
u2,u5:array[0..max] of longint;
re,n:longint;
procedure rf;
var c:char;
begin
fillchar(a,sizeof(a),0);
n:=0;
while not eoln do
begin
inc(n);
read(c);
inc(a[c]);
end;
end;
procedure init;
var i,j:integer;
begin
fillchar(u2,sizeof(u2),0);
fillchar(u5,sizeof(u5),0);
for i:=1 to max do
begin
j:=i;
u2[j]:=u2[j-1];
while j mod 2 = 0 do
begin
j:=j div 2;
inc(u2[i]);
end;
end;
for i:=1 to max do
begin
j:=i;
u5[j]:=u5[j-1];
while j mod 5 = 0 do
begin
j:=j div 5;
inc(u5[i]);
end;
end;
end;
procedure pr;
var c:char; k,t2,t5:longint;
begin
init;
t2:=0; t5:=0; re:=0;
for c:='a' to 'z' do
if a[c]>0 then
begin
k:=a[c];
t2:=t2+u2[n]-u2[k]-u2[n-k];
t5:=t5+u5[n]-u5[k]-u5[n-k];
n:=n-a[c];
end;
if t2>t5 then re:=t5 else re:=t2;
end;
procedure wf;
begin
write(re);
end;
begin
rf;
pr;
wf;
end.