Cod sursa(job #687402)

Utilizator gigiibirjoBirjovanu Georgiana gigiibirjo Data 22 februarie 2012 13:12:06
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<fstream>
#include<values.h>
using namespace std;
int main ()
{
	long long p,pr,i,j,m,k,x,ok;
	ifstream fin ("fact.in");
	ofstream fout ("fact.out");
	fin>>p;
	if(p==0) fout<<"1";
	else
	{
		i=0; j=LONG_MAX; ok=0;
		while(i<=j&&ok==0)
		{
			m=(i+j)/2;
			pr=5; k=0;
			while(pr<m)
			{
				k=k+m/pr;
				pr=pr*5;
			}
			if(k==p)
			{
				x=m-m%5;
				ok=1;
			}
			else if (k<p) i=m+1;
				else j=m-1;
		}
	if(ok==1) fout<<x;
	else fout<<"-1";
	}
	fin.close();
	fout.close();
	return 0;
}