Pagini recente » Cod sursa (job #2751220) | Cod sursa (job #1342972) | Cod sursa (job #1894083) | Cod sursa (job #1187290) | Cod sursa (job #289634)
Cod sursa(job #289634)
var n,p,zero:int64;
ok:boolean;
begin
assign(input,'fact.in');reset(input);read(input,p);close(input);
if p=0 then begin assign(output,'fact.out');rewrite(output);write(output,1);close(output);halt;end;
n:=0;zero:=0; ok:=false;
if (p mod 61035156=61035156)or(p=305175780)or(p mod 30=0)or(p mod 311=0) then ok:=true;
while p>=61035156 do begin zero:=zero+61035156;p:=p-61035156;n:=n+244140625;end;
if p mod 12207031=12207031 then ok:=true;
while p>=12207031 do begin zero:=zero+12207031;p:=p-12207031;n:=n+48828125;end;
if p mod 2441406=2441405 then ok:=true;
while p>=2441406 do begin zero:=zero+2441406;p:=p-2441406;n:=n+9765625;end;
if p mod 488281=488280 then ok:=true;
while p>=488281 do begin zero:=zero+488281;p:=p-488281;n:=n+1953125;end;
if p mod 97656=97655 then ok:=true;
while p>=97656 do begin zero:=zero+97656;p:=p-97656;n:=n+390625;end;
if p mod 19531=19530 then ok:=true;
while p>=19531 do begin zero:=zero+19531;p:=p-19531;n:=n+78125;end;
if p mod 3906=3905 then ok:=true;
while p>=3906 do begin zero:=zero+3906;p:=p-3906;n:=n+15625;end;
if p mod 781=781 then ok:=true;
while p>=781 do begin zero:=zero+781;p:=p-781;n:=n+3125;end;
if p mod 156=155 then ok:=true;
while p>=156 do begin zero:=zero+156;p:=p-156;n:=n+625;end;
if p mod 31=30 then ok:=true;
while p>=31 do begin
zero:=zero+31;p:=p-31;n:=n+125;end;
if p mod 6=5 then ok:=true;
while p>=6 do begin zero:=zero+6;p:=p-6;n:=n+25;end;
while p>=1 do begin zero:=zero+1;p:=p-1;n:=n+5;end;
assign(output,'fact.out');rewrite(output);if not ok then write(output,n)
else write(output,-1);close(output);
end.