Cod sursa(job #2636637)

Utilizator invoIlioi Alexandru invo Data 19 iulie 2020 01:04:04
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<fstream>
#include<iostream>
using namespace std;

ifstream f("fact.in");
ofstream g("fact.out");

int nr(long long a)
{
	long long n = 0;
	long long k = 5;
	while (a / k != 0)
	{
		n += a / k;
		k *= 5;
	}
	return n;
}
int main()
{
	long long st = 1;
	long long dr = 10000000000;
	int p;
	f >> p;

	long long sol = -1;
	while (st <= dr)
	{
		long long m = (st + dr) / 2;
		long long r = nr(m);

		if (r == p)
		{
			sol = m;
			dr = m - 1;
		}
		else if (r > p)
		{
			dr = m - 1;
		}
		else 
		{
			st = m + 1;
		}
	}
	g << sol;
	return 0;
}