Cod sursa(job #729459)

Utilizator mitrutstrutMitrea Andrei Ionut mitrutstrut Data 29 martie 2012 17:00:34
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<fstream>
using namespace std;
ifstream f("fact.in"); ofstream g("fact.out");
int i,w;
long long p,st,dr,m,nr,c[21];
int main()
{	c[0]=1;
	for (i=1;i<=20;i++) c[i]=c[i-1]*5;
	f>>p;
	if(p==0) g<<"1\n";
		else
		 {	st=1; dr=p*5; w=1;
			while(st<=dr && w)
				{	m=(st+dr)/2;
					nr=0; i=1;
					while(c[i]<=m) 
						nr=nr+m/c[i++];
					if(nr==p) g<<m-m%5<<'\n',w=0;
						else if(nr<p) st=m+1; else dr=m-1; 
				}
			if(w) g<<"-1\n"; 
		 }
	g.close();
	return 0;
}