Pagini recente » Cod sursa (job #2461523) | Cod sursa (job #1742993) | Cod sursa (job #2751904) | Cod sursa (job #378674) | Cod sursa (job #68425)
Cod sursa(job #68425)
const c1=4;
c2=44;
c3=284;
c4=1644;
c5=9044;
c6=48524;
c7=255724;
c8=1334924;
c9=6898724;
c10=35567724;
c11=181432124;
c12=933934124;
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:longint;
begin
coef:=0;
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; }
z:=z-nrz;
nrz:=nrz+(coef*(z div 10));
nrzero:=nrz-coef;
end;
begin
assign (f,'fact.in');
assign (g,'fact.out');
reset (f);
rewrite (g);
readln (f,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 (g,auxaux);
ok2:=false;
end
else
auxaux:=auxaux-1;
auxaux:=-1;
end;
end;
if auxaux<>-1
then
writeln (g,'-1');
close(f);
close(g);
end.