Cod sursa(job #304555)

Utilizator vlad_olteanVladimir Oltean vlad_oltean Data 13 aprilie 2009 21:08:10
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>

long long n,l,r,m,num;
const long long p5[12]={1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125};

long long nrz(long long a)
{	long long p=0;

	for(long long i=5; i<=a; i+=5)
		for(int j=1;  j<=12 && p5[j]<=i;  j++)
			if(i%p5[j]==0) p++;
		
	return p;
}

int main()
{
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	
	scanf("%lld",&n);
	l=1;
	r=10;
	for(int i=1;i<=2;i++)
		r*=r;
	while(l<r)
	{	m=l+(r-l)/2;
		num=nrz(m);
		if(num>n) r=m;
		else if(num<n) l=m+1;
		else break;
	}
	if(num==n) printf("%lld",m);
	else printf("-1");
	
	return 0;
}