Pagini recente » Cod sursa (job #2170959) | Cod sursa (job #2626797) | Cod sursa (job #3238524) | Cod sursa (job #389063) | Cod sursa (job #396106)
Cod sursa(job #396106)
#include<iostream>
#include<fstream>
using namespace std;
ofstream fout("fact.out");
long rez=500000010,p;
long nrz(long n)
{long no=0,ci=5;
while(n>=ci)
{no+=n/ci;
ci=ci*5;
}
return no;
}
void cauta(long lo,long hi)
{int k,mid;
if(lo==hi)
{if(p==nrz(lo))
rez=lo;
else
rez=-1;
}
else
{mid=lo+(hi-lo+1)/2;
k=nrz(mid);
{if(k==p)
{if(mid<rez)
{rez=mid;
cauta(lo,mid-1);
}
}
else
{if(k>p)
cauta(lo,mid-1);
else
cauta(mid+1,hi);
}
}
}
}
int main()
{
ifstream fin("fact.in");
fin>>p;
fin.close();
cauta(0,5*p);
fout<<rez;
fout.close();
return 0;
}