Cod sursa(job #527770)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 1 februarie 2011 11:16:50
Problema Factorial Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<fstream>
using namespace std;

int CautareBinara(int p)
{
	int st,dr,m,s,pn;
	st=1;
	dr=100000000;
	while(st<=dr)
	{
		m=(st+dr)/2;
		pn=1;
		s=0;
		while(pn<=m)
		{
			pn=pn*5;
			s+=m/pn;
		}
		if(s==p) return m;
		if(s<p) st=m+1;
		else dr=m-1;
	}
	return 0;
}

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