Cod sursa(job #121385)
Utilizator | Mihai Gheorghe GheorgheMihai | Data | 8 ianuarie 2008 16:46:04 |
---|---|---|---|
Problema | Factorial | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include<stdio.h>
long p,st,dr,nr;
long mul(long m)
{
long putere;
nr=0;
putere=5;
while(m/putere)
{
nr=nr+m/putere;
putere=putere*5;
}
return nr;
}
long bi(long st, long dr)
{
long m;
m=(st+dr)>>1;
nr=mul(m);
if(nr==p)
{
m=m-m%5;
return m;
}
if(nr>p)
return bi(st,m-1);
return bi(m+1,dr);
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%ld",&p);
st=p*4;
dr=5*p;
printf("%ld",bi(st,dr));
return 0;
}