Pagini recente » Cod sursa (job #146790) | Cod sursa (job #1651696) | Cod sursa (job #288869) | Cod sursa (job #2741566) | Cod sursa (job #306230)
Cod sursa(job #306230)
#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,b;
ifstream f("fact.in");
f>>p;
f.close();
a=bin(0,1220703125,p);
if (a!=-1)
while (nzero(a-1)==p)
{a--;}
ofstream g("fact.out");
g<<a;
g.close();
return 0;
}