Cod sursa(job #139668)

Utilizator cameleonGeorgescu Dan cameleon Data 20 februarie 2008 15:16:20
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream.h>
ifstream f("fact.in");
ofstream g("fact.out");
unsigned  long int nr0;

unsigned  long int fact(unsigned long int x)
{
unsigned  long int nr=0,cp=5;
while(x>=cp)
	{
		nr+=x/cp;
		cp*=5;
	}
return nr;
}
 long int caut(unsigned  long int p,unsigned long  int u)
{
	unsigned long  int mij,f;
	if(p<=u)
		{
		mij=(p+u)/2;
		f=fact(mij);
		if(f==nr0)
			if(mij%10<5)
			return (mij/10*10);
			else return (mij/10*10+5);
		else
			if(nr0<f)
				return caut(p,mij-1);
			else    return caut(mij+1,u);
		}
	else return -1;
}

int main()
{
	f>>nr0;
	if(nr0>0)
	g<<caut(0,4000000000)<<'\n';
	else
	if(nr0==0)
	g<<1;
	else g<<-1;
	f.close();
	g.close();
	return 0;
}