Cod sursa(job #1117899)

Utilizator negrea.andreiAndrei Negrea negrea.andrei Data 23 februarie 2014 20:58:08
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream>

using namespace std;


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

int p, i=0, j=0, dr, st, m, s, d, produs;

int main()
{  
	f >> p;
	st = 0; dr = 2000000000;
	while (st + 1 < dr)
    {
		m = (dr + st)/2;
		i = 0;
		produs = 5;
		while (m/produs > 0)
		{
			i = i + m/produs;
			produs = produs*5;
		}
		if (i < p)
		{
			st = (dr + st)/2;
		}
	    else dr = (dr + st)/2;
	}
	i = 0;
	produs = 5;
	while (st/produs > 0)
	{
		i = i + st/produs;
		produs = produs*5;
	}
	produs = 5;
	while (dr/produs > 0)
	{
		j = j + dr/produs;
		produs = produs*5;
	}
	if (p == 0) g << 1;
	else
		if ((i == p) && (i != 0)) g << st;
		else
			if ((j == p) && (j != 0)) g << dr;
			else g << -1;
}