Cod sursa(job #1010459)

Utilizator TwoOfDiamondsDaniel Alexandru Radu TwoOfDiamonds Data 14 octombrie 2013 22:28:41
Problema Factorial Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>

using namespace std;

unsigned long long nr0(unsigned long long x)
{
	unsigned long long ret = 0;

	for (unsigned long long i = 5; i <= x ; i *= 5)
		ret += x/i;

	return ret;
}

int main()
{
	ifstream IN ("fact.in");
	ofstream OUT ("fact.out");

	unsigned long long p; IN >> p;
	unsigned long long noo5 = 0;
	unsigned long long a = 1, b = p*5, c = (a+b) / 2;

	while (a <= b)
	{
		c = (a+b)/2;
		noo5 = nr0(c);
		if (noo5 >= p)
		{
			b = c - 1;
		}
			else
		{
			a = c + 1;
		}
	}
	
	if (noo5 == p)
	{
		OUT << c << "\n";
		return 0;
	}

	OUT << "-1\n";


	return 0;
}