Cod sursa(job #439420)
| Utilizator | Data | 11 aprilie 2010 16:05:28 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <stdio.h>
int nr5(long long);
long long ls,ld,m,ax;
int p,x;
long long n;
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&p);
ls=1;ld=2000000000;
while (ls<=ld)
{
m= (ls+ld)/2;
ax= 0;
x=5;
while (x<=m)
{
ax+= m/x;
x*=5;
}
if (ax==p)
ls=ld+1;
else if (ax>p)
ld=m-1;
else
ls=m+1;
}
if (ax==p) n=m;
else n=-1;
while (n%5 && n>1) n--;
printf("%lld\n",n);
return 0;
}
