Pagini recente » Cod sursa (job #852429) | Cod sursa (job #1743517) | Cod sursa (job #1781779) | Cod sursa (job #1966063) | Cod sursa (job #86168)
Cod sursa(job #86168)
#include<stdio.h>
#include<math.h>
long long aux,sol,vb1,lim1,lim2,zero,p;
int catezero(long long mij)
{
zero=0;
aux=mij;
while(aux>0)
{
zero=zero+aux/5;
aux=aux/5;
}
if(zero>p) {lim2=mij+1; return 0;}
else
if(zero<p) {lim1=mij; return 0;}
else return 1;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&p);
if(p==0) {printf("1"); return 0;}
aux=p;
while(aux%5==0)
{
aux=aux/5;
vb1=1;
}
if(aux==1 && vb1==1) {printf("-1"); return 0;}
lim1=1;
lim2=25*p;
while(zero!=p)
{
if(catezero((lim1+lim2-1)/2)==1)
sol=(lim2+lim1-1)/2;
if(lim1+1==lim2 || lim1==lim2 || lim1+2==lim2)
{
sol=lim2+2;
zero=p;
}
}
while(sol%5!=0)
sol--;
printf("%lld",sol);
return 0;
}