Cod sursa(job #441740)
| Utilizator | Data | 13 aprilie 2010 11:48:58 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<stdio.h>
long long n,p,st=1,dr,bla,t,nr,v[12],i;
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&p);bla=0;
v[0]=5;
for(i=1;i<12;i++)
{
v[i]=5*(v[i-1]+1)
if(p==v[i]) bla=1;
}
if(bla==1)printf("-1");
else
{
dr=5*p;
while(st<dr)
{
nr=0;
t=(st+dr)/2;
bla=5;
while(bla<=t)
{
nr=nr+t/bla;
bla=bla*5;
}
if(nr>=p)
dr=t;
else
st=t+1;
}
printf("%lld",st);
}
}
