Cod sursa(job #2970294)

Utilizator NiffSniffCojocaru Calin Marcu NiffSniff Data 24 ianuarie 2023 20:53:47
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
using namespace std;
string file = "fact";
ifstream fin(file + ".in");
ofstream fout(file + ".out");
long long f5[20];

void f()
{
	f5[0] = 1;
	for (long long i = 1; i < 20; i++)
	{
		f5[i] = 5 * f5[i - 1];
	}
}

long long nrzero(long long x)
{
	long long cnt(0);
	for (long long i = 1; x / f5[i]; i++)
	{
		cnt += x / f5[i];
	}
	return cnt;
}
int main()
{
	long long n;
	fin >> n;
	f();
	long long st(1), dr(f5[19]);
	while (st <= dr)
	{
		long long mid = (st + dr) / 2;
		if (nrzero(mid) >= n)
		{
			dr = mid - 1;
			
		}
		else
		{
			st = mid + 1;
		}
	}
	fout << (nrzero(dr+1) == n ? dr+1 : -1);
}