Cod sursa(job #2359148)

Utilizator bojemoiRadu Mamaliga bojemoi Data 28 februarie 2019 17:52:19
Problema Factorial Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream>

using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");

long long p;


long long zerouri(long long fval) {
	long long zeroes = 0;
	long long c= 5;
	while (fval >=c) {
		zeroes += fval / 5;
		c*= 5;
	}
	return zeroes;
}	

long long bsearch(long long left, long long right) {
	while (left < right) {
		long long mid = (left + right) / 2;
		if (zerouri(mid) >= p) return right = mid;
		else left = mid + 1;
	}
	return left;
}


int main() {
	fin >> p;
	if (p == 0) {
		fout << 1;
		return 0;
	}
	
	long long nr = bsearch(1, 500000000);
	if (p == zerouri(nr)) fout << nr;
	else fout << -1;
	return 0;
}