Pagini recente » Cod sursa (job #3261424) | Cod sursa (job #1585965) | Cod sursa (job #2352464) | Cod sursa (job #1285518) | Cod sursa (job #785814)
Cod sursa(job #785814)
#include <fstream>
#include <cmath>
#include <iostream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long i, x, p, ok, zero, hi, lo, mid, patr[14];
int main() {
fin >> p;
fin.close();
for (i = 1; i < 14; i++) {
patr[i] = pow(5, i);
//cout << patr[i] << '\n';
}
lo = 0;
hi = 500000005;
while (hi - lo > 1) {
mid = (hi + lo) / 2;
i = 1;
zero = 0;
//cout << "mid=" << mid << ' ';
while (mid / patr[i] >= 1) {
zero += mid / patr[i];
//cout << "zero=" << zero << '\n';
i++;
}
if (zero == p) {
x = mid;
ok = 1;
}
if (zero < p)
lo = mid;
else
hi = mid;
//cout << mid << ' ';
}
if (ok)
fout << x;
else
fout << -1;
fout.close();
return 0;
}