Cod sursa(job #2338478)

Utilizator BarsanEmilianIoanBarsan Emilian-Ioan BarsanEmilianIoan Data 7 februarie 2019 15:34:27
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
# include <iostream>
# include <fstream>
# include <algorithm>
# include <cmath>
# include <cctype>
# include <cstring>
# include <queue>
# include <stack>
# include <unordered_map>

using namespace std;

ifstream fi  ("fact.in");
ofstream fo ("fact.out");

long long p, rez = 0x3f3f3f3f, st, dr, mij;

long long legrande(long long numar) {
	long long e = 0;
	long long putere = 5;
	while (putere <= numar) {
		e += (long long)numar / putere;
		putere *= 5;
	}
	return e; 
}

int main ()

{
	fi >> p;
	st = 1;
	dr = 1 << 30;
	while (st <= dr) {
		mij = (st + dr) >> 1;
	if (legrande(mij) == p) {
	rez = mij;
	dr = mij - 1;
	}
	if (legrande(mij) < p)
	st = mij + 1;
	else
	if (legrande(mij) > p)
	dr = mij - 1;
	}
	if (rez != 0x3f3f3f3f)
	fo << rez;
	else
	fo << -1;
	return 0;
}