Cod sursa(job #727429)
Utilizator | Data | 27 martie 2012 22:47:53 | |
---|---|---|---|
Problema | Factorial | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<stdio.h>
long long p,in,sf,mij,x,i;
int fives(int y)
{
int nr=0;
i=5;
while(y>=i)
{
nr+=y/i;
i*=5;
}
return nr;
}
int main ()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&p);
if(p==0)
{
printf("1");
return 0;
}
in=1;
sf=p;
while(in<sf)
{
mij=(in+sf)/2;
x=fives(mij*5);
if(x==p)
{
printf("%lld",mij*5);
return 0;
}
else
if(x>p)
sf=mij-1;
else
in=mij+1;
}
printf("-1");
return 0;
}