Pagini recente » Cod sursa (job #1684904) | Cod sursa (job #3289787) | Cod sursa (job #324599) | Cod sursa (job #804603) | Cod sursa (job #2132409)
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long p;
inline long long nrZerouri(long long n) {
long long nr = 0;
for (long long i = 5; i <= n; i *= 5)
nr += n / i;
return nr;
}
int main()
{
fin >> p;
long long raspuns = -1;
long long st = 1, dr = LLONG_MAX;
long long mid;
while (st <= dr) {
mid = st + (dr - st) / 2; // daca aducem la acelasi numitor da (st + dr) / 2
if (nrZerouri(mid) >= p) {
raspuns = mid;
dr = mid - 1;
}
else
st = mid + 1;
}
if (nrZerouri(raspuns) == p)
fout << raspuns;
else
fout << -1;
return 0;
}