Cod sursa(job #2897034)

Utilizator alexmorosanuMorosanu Alexandru alexmorosanu Data 2 mai 2022 10:08:05
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>

using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long p, sol, st, dr, mij, nr;
long long fact5(long long x)
{
	long long sol = 0;
	while(x)
	{
		sol = sol + x / 5;
		x = x / 5;
	}                                                                                     
	return sol;
}                                               
int main()
{
	f >> p;
	st = 1;
	dr = static_cast<long long>(1) << 62;
	while (st <= dr)
	{
		mij = (st + dr) / 2;
		nr = fact5(mij);
		if (nr >= p)
		{
			sol = mij;
			dr = mij - 1;
		}
		else
			st = mij + 1;
	}
	if (fact5(sol) != p)
		sol = -1;
	g << sol;
	return 0;
}