Cod sursa(job #592419)

Utilizator Agent008Cristi Poputea Agent008 Data 28 mai 2011 12:32:08
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<iostream.h>
#include<fstream.h>
#include<math.h>
fstream f("fact.in",ios::in), g("fact.out",ios::out);
long long contor,i,ok,ur=1,p,b=1,t;
int main()
{
	long long k,v,pu=5,l,o,ok2=0;
	f>>k;
	if(k==0)
		g<<"1";
	else
	{	while(contor<k && !ok)
		{
			i+=pu;
			contor+=ur;
			if(i==pu*5)
			{	contor++;
				ur=contor;
				pu=pu*5;
			}
			if(contor>=k)
				ok=1;
		}
	if(contor==k)
		g<<i;
	else
	{	l=contor-ur;v=pu/5;o=i-pu;p=(ur-1)/5;ok=0;
		while(!ok)
		{
			o+=v;
			l+=p;
			if(p==1)
			{
				b++;
				if(b==5)
					ok=2;
			}
			else 
				b=1;
			if(l==k)
				ok=1;
			else
				if(l>k)
				{	l-=p;o-=v;p=(p-1)/5;v/=5;}
		}
		if(ok==1)
		{	g<<o;cout<<o;}
		else
		{	g<<"-1";cout<<"-1";}
	}
	}
	return 0;
}