Pagini recente » Cod sursa (job #60888) | Cod sursa (job #1807346) | Cod sursa (job #1638240) | Cod sursa (job #770224) | Cod sursa (job #571365)
Cod sursa(job #571365)
#include <iostream>
#include <fstream>
using namespace std;
#define LL long long
#define inf 4000000015LL
LL P, sol = inf;
LL count (LL q)
{
LL rsp = 0;
for ( ; q != 0; )
{
q /= 5;
rsp += q;
}
return rsp;
}
void bin_Search ()
{
LL st = 1, dr = inf, mid;
while (st < dr)
{
mid = (st + dr) / 2;
LL rsp = count(mid);
if ( rsp == P )
{
sol = min (sol, mid);
dr = mid - 1;
}
else
if (rsp < P) st = mid + 1;
else dr = mid - 1;
}
}
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
f >> P;
bin_Search ();
if (P == 0)
{
g << 1;
return 0;
}
if (sol == inf)
g << -1;
else
{
while (sol % 5)
-- sol;
g << sol;
}
f.close();
g.close();
return 0;
}