Cod sursa(job #430656)

Utilizator ErgoVicol Sergiu Constantin Ergo Data 31 martie 2010 11:17:46
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

#define INFI 900000000
using namespace std;

long long Sol, NCif;

inline int Verifica(long long x)
{
	int t;
	
	for (t = 0; x; x/=5)
		t += x / 5;
	
	if (t >= NCif) 
		return 1;
	else 
		return 0;
}

void readData(void)
{
	ifstream fin("fact.in");
	
	fin >>NCif;
	
	fin.close();
}

void Solve(void)
{
	unsigned long long st = 1, end = INFI, m;

	while (st <= end)
	{
		m = (st + end) / 2;
		
		if (Verifica(m))
		{
			Sol = m;
			end = m - 1;
		}
		else
		{
			st = m + 1;
		}
	}
}

void writeResult(void)
{
	ofstream fout("fact.out");
	
	fout <<Sol;
	
	fout.close();
}

int main()
{
	readData();
	
	Solve();
	
	writeResult();
	
	return 0;
}