Cod sursa(job #241672)

Utilizator f.v.antonFlavius Anton f.v.anton Data 10 ianuarie 2009 17:32:07
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream.h>
#include <iostream.h>
#include <math.h>
unsigned long int p,crt,zerouri=0,i,k,x[14];
void calculeaza(unsigned long int nr)
{
	int i=1;   zerouri=0;
	while(x[i]<=nr)
	{	zerouri+=nr/x[i];
		i++;
	}
}



int main()
{       x[0]=1;
	for(i=1;i<=13;i++)
		x[i]=x[i-1]*5;


	fstream f,g;
	f.open("fact.in",ios::in);
	f>>p;
	f.close();
	g.open("fact.out",ios::out);
	crt=500000;   int ok;
	while(zerouri!=p)
	{       zerouri=0;
		calculeaza(crt);
		if(zerouri>p)
			crt=crt/2;
		else
		if(zerouri<p)
			crt=crt+crt/2;
		if(zerouri<p-12)
			for(i=crt;i<=crt+60;i+=5)
			   {    calculeaza(i);
				if(zerouri==p)
				 {crt=i;break;  }
			   }
		if(p<zerouri-12)
			for(i=crt;i>=crt+60;i+=5)
			{	calculeaza(i);
				if(zerouri==p)
				{crt=i;  break; }
			}

	}

	if(zerouri==p)
	{
	 g<<crt;
	}
	else
		g<<-1;
	g.close();
	return 0;
}