Cod sursa(job #2514044)

Utilizator kokitchyAlastor kokitchy Data 24 decembrie 2019 14:01:46
Problema Factorial Scor 25
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>

#define NMAX 100000

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;
}