Pagini recente » Cod sursa (job #980128) | Cod sursa (job #2254960) | Cod sursa (job #1362713) | Cautari ortogonale | Cod sursa (job #2514047)
#include <fstream>
#define NMAX 500000000
long nr_zerouri(long n) {
int nr = 0;
//pana la 5 nu am 0
//n/5 => nr zerouri
for (int i = 5; n/i >= 1; i *= 5)
nr += n / i;
return nr;
}
int main()
{
std::ifstream fin("fact.in");
std::ofstream fout("fact.out");
int p, st = 1, dr = NMAX, m, n = -1;
fin >> p;
while (st <= dr) {
m = st + (dr - st) / 2; // <= dr
if (nr_zerouri(m) == p) {
n = m;
dr = m - 1;
}
if (nr_zerouri(m) < p)
st = m + 1;
else
dr = m - 1;
}
fout << n;
fin.close(), fout.close();
return 0;
}