Cod sursa(job #306239)

Utilizator Razzoragamita dandanache Razzor Data 20 aprilie 2009 03:50:08
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream.h>
#include <math.h>
inline long long  tlog5(long double d)
{
return long(floor(log10(d)/log10(5)));
}

long long nzero(long long n)
{
long long i,z,k;
z=0;
k=tlog5(n);

for (i=1;i<=k;i++)
{
z=(n/pow(5,i))+z;
}

return z;
}

long long bin(long long li,long long ls,long long p)
{
long long mij,nz;

while ((li<=ls) && (p!=mij)){
mij=(li+ls)/2;
nz=nzero(mij);
if  (nz==p) {return mij;}
else if (nz<p) {li=mij+1;}
else  {ls=mij-1;}
}
return -1;
}




int main()
{
long long p,a;
ifstream f("fact.in");
f>>p;
f.close();
ofstream g("fact.out");
if (p==0) {g<<"1";}
else{
a=bin(0,10000000000LL,p);

while ((a>1)&&(nzero(a-1)==p))
{a--;}
g<<a;
g.close();}
return 0;
}