Cod sursa(job #527779)

Utilizator romircea2010FMI Trifan Mircea Mihai romircea2010 Data 1 februarie 2011 11:36:59
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

int p;

int Factorial (int m)
{
	int x=0, y=1;
	if (m<5)
		return 0;
	while (y<m)
	{
		y*=5;
		x=x+m/y;
	}
	return x;
	
}

int CautareBinara ()
{
	int st, dr, m, x;
	st=1;
	dr=1000000000;
	while (st<=dr)
	{
		m=(dr+st)/2;
		x=Factorial (m);
		if (x==p)
			return m;
		else
			if (x>p)
				dr=m-1;
			else
				st=m+1;
	}
	return -1;		
}

int main ()
{
	ifstream f("fact.in");
	f>>p;
	f.close();
	
	int n;
	if (p==0)
		n=1;
	else
	{	
		n=CautareBinara();
		if (n>-1)
			while (n%5)
				n--;
	}
	
	ofstream g("fact.out");
	g<<n<<"\n";
	g.close();
	
	
	return 0;
}