Cod sursa(job #477086)

Utilizator c_adelinaCristescu Adelina c_adelina Data 13 august 2010 12:56:44
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <cstdio>
int main()
{
	
	long long n,x=1,y,v[20]={5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125};
	
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	scanf("%lld",&n);
	y=n*5;
    
	while (x<=y)
	{
		long long nr,i,z=(x+y)/2;
		for (i=nr=0;v[i]<=z;++i)
			nr+=z/v[i];
		if (nr<n)
			x=z+1; else
				if (nr>n) 
					y=z-1; else
		{printf("%lld",z/5*5);return 0;} 
	}
	if (n==0) printf("1"); else
	printf("-1");
	return 0;}