Pagini recente » Cod sursa (job #3157559) | Cod sursa (job #895560) | Cod sursa (job #2864608) | Cod sursa (job #1096616) | Cod sursa (job #2388173)
#include <bits/stdc++.h>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
const uint64_t MX = 100000000/5 + 1;
int main()
{
uint64_t P, Z=0;
vector <uint64_t> v(1, 0);
in>>P;
if(P == 0) { out<<1; return 0;}
for(uint64_t i = 5; v.size() != 31; i *= 5) v.push_back(i);
for(uint64_t i = 1; i <= MX; ++i)
{
++Z;
int64_t l = 1, r = 30, p = -1;
while(l <= r)
{
int64_t m = (l + r) / 2;
if(v[m] == i) {p = m; break;}
else if(v[m] < i) l = m + 1;
else r = m - 1;
}
if(p != -1)
{
Z += p;
}
if(Z == P)
{
out<<i*5;
return 0;
}
else if(Z > P)
{
out<<-1;
return 0;
}
}
return 0;
}