Cod sursa(job #361580)

Utilizator Cristi09Cristi Cristi09 Data 5 noiembrie 2009 21:54:42
Problema Factorial Scor 20
Compilator cpp Status done
Runda CNRV #4 Marime 0.7 kb
#include<fstream.h>
#include<values.h>
unsigned long p;
unsigned long func(unsigned long x);
int main()
{
	unsigned long c,bla=0,a=0,b=MAXLONG,ok=1,x;
	ifstream f("fact.in");
	f>>p;
	f.close();



	while(ok&&!bla)
	{
	   c=(a+b)/2;

	   x=func(c);
	   if(a>b)bla=1;
	   if(x==p)ok=0;
	   else
		if(x<p)a=c+1;
		else b=c-1;
	}
	ofstream g("fact.out");
	if(bla)g<<-1;
	else
	if(p==0)
	  g<<1;
	else g<<(c/5)*5;
	g.close();
	return 0;
}
unsigned long func(unsigned long x)
{
   unsigned long con=0,i,var,ok=0;
   if(x/5>p)ok=1;
   for(i=5;i<=x&&!ok;i+=5)
   {
	  var=i;
	  while(var%5==0)
	  {con++;var/=5;}
	  if(con>p)ok=1;
   }
   if(!ok)return con;
   else return p+1;
}