Cod sursa(job #497937)
Utilizator | TRAN BACH LAM LAM_LAM | Data | 3 noiembrie 2010 18:01:07 |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include<stdio.h>
long n;
long factorial(long n)
{
long num=0,nr=0;
num=5;
while(n/num)
{
nr=nr+n/num;
num=num*5;
}
return nr;
}
long bs(long val)
{
long st=1,dr=10000,med,last;
while(st<=dr)
{
med=st+(dr-st)/2;
if(factorial(med)>=val)
{
last=med;
dr=med-1;
}
else
st=med+1;
}
return last;
}
int main()
{
freopen("factorial.in","r",stdin);
freopen("factorial.out","w",stdout);
scanf("%ld",&n);
printf("%ld\n",bs(n));
return 0;
}