Cod sursa(job #254895)

Utilizator alexeiIacob Radu alexei Data 7 februarie 2009 23:58:13
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#define NMAX 10000000000
//fast coding style
long long p(long long val)
{
	long long N=0;
	long long c=5;

	while( c<=val )
	{
		N+=val/c;
		c*=5;
	}
	
	return N;
}

void search(const int val)
{
	long long ANS=-1;
	long long inc=0,sf=NMAX,mij;
	int a1;
	
	while( inc<=sf )
	{
		mij=(inc+sf)/2;

		a1=p( mij );

		if( a1>=val )
		{
			sf=mij-1;

			if( a1==val )
				ANS=mij;
		}
		else
		{
			inc=mij+1;
		}
	}	
	if( !ANS )
		printf("%d\n",1);
	else
		printf("%lld\n",ANS);
}

int main()
{
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);

	int P;

	scanf("%d",&P);
	search(P);
	
	return 0;
}