Cod sursa(job #439420)

Utilizator crushackPopescu Silviu crushack Data 11 aprilie 2010 16:05:28
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include <stdio.h>

int nr5(long long);
long long ls,ld,m,ax;
int p,x;
long long n;

int main()
{
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	scanf("%lld",&p);
	ls=1;ld=2000000000;
	while (ls<=ld)
	{
		m= (ls+ld)/2;
		ax= 0;
		x=5;
		while (x<=m)
		{
			ax+= m/x;
			x*=5;
		}
		if (ax==p)
			ls=ld+1;
		else if (ax>p)
			ld=m-1;
		else
			ls=m+1;
	}
	if (ax==p) n=m;
	else n=-1;
	while (n%5 && n>1) n--;
	printf("%lld\n",n);
	return 0;
}