Pagini recente » Cod sursa (job #230957) | Cod sursa (job #3293265) | Cod sursa (job #1292270) | Cod sursa (job #2903224) | Cod sursa (job #68675)
Cod sursa(job #68675)
const c1=4;
c2=32;
c3=212;
c4=1312;
c5=7812;
c6=45312;
c7=257812;
c8=1445312;
c9=8007812;
c10=43945312;
c11=239257812;
var p,max,min,aux,auxaux:longint;
f,g:text;
ok,ok2:boolean;
a:array [1..3] of longint;
function nrzero (z:longint):longint;
var coef,nrz,lk,jk:longint;
begin
coef:=1;
nrz:=1;
if z>=24
then
begin
coef:=2;
nrz:=c1;
end;
if z>=124
then
begin
coef:=coef+1;
nrz:=c2;
end;
if z>=624
then
begin
coef:=coef+1;
nrz:=c3;
end;
if z>=3124
then
begin
coef:=coef+1;
nrz:=c4;
end;
if z>=15624
then
begin
coef:=coef+1;
nrz:=c5;
end;
if z>=78124
then
begin
coef:=coef+1;
nrz:=c6;
end;
if z>=390624
then
begin
coef:=coef+1;
nrz:=c7;
end;
if z>=1953124
then
begin
coef:=coef+1;
nrz:=c8;
end;
if z>=9765624
then
begin
coef:=coef+1;
nrz:=c9;
end;
if z>=48828124
then
begin
coef:=coef+1;
nrz:=c10;
end;
if z>=244140624
then
begin
coef:=coef+1;
nrz:=c11;
end;
{if z>1220703124
then
begin
coef:=coef+1;
nrz:=c12;
end; }
jk:=1;
for lk:=1 to coef do
jk:=jk*5;
z:=z-jk;
{nrz:=nrz+coef;}{+coef*(z div 10)+z div 10; }
if z mod 2=0
then
jk:=coef*(z div 10)+(z div 10)
else
jk:=coef*(z div 10)+((z div 5)-(z div 10));
nrz:=nrz+jk;
nrzero:=nrz;
end;
begin
assign (f,'fact.in');
assign (g,'fact.out');
reset (f);
rewrite (g);
readln (p);
min:=1;
max:=1500000000;
ok:=true;
while ok do
begin
auxaux:=nrzero(trunc((min/2)+(max/2)));
if p<auxaux
then
begin
max:=trunc((min/2)+(max/2));
a[3]:=a[2];
a[2]:=a[1];
a[1]:=max;
if a[1]=a[3]
then
ok:=false;
end;
if p>auxaux
then
begin
min:=trunc((min/2)+(max/2));
a[3]:=a[2];
a[2]:=a[1];
a[1]:=min;
if a[1]=a[3]
then
ok:=false;
end;
if p=auxaux
then
begin
auxaux:=trunc((min/2)+(max/2));
ok2:=true;
while ok2 do
if auxaux mod 5=0
then
begin
writeln (auxaux);
ok2:=false;
end
else
auxaux:=auxaux-1;
auxaux:=-1;
ok:=false;
end;
end;
if auxaux<>-1
then
writeln ('-1');
close(f);
close(g);
end.