Cod sursa(job #156259)

Utilizator andrei-alphaAndrei-Bogdan Antonescu andrei-alpha Data 12 martie 2008 14:06:11
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <stdio.h>
int main()
{ 
	long long k,m,p,nr5,st,dr;
	freopen("fact.in", "r",stdin);	
	freopen("fact.out", "w",stdout);
	scanf("%lld", k);
	st=1;
	dr=2000000000;
	if (k==0) printf("1");
	else
		while (st<=dr)
		{
		m=(st+dr)/2;
		nr5=0;p=5;
		while(m/p!=0)
        {
			nr5=nr5+(m/p);
			p=p*5;
        }
        if(nr5==k) 
		{ 
			while(m%5!=0) m--;
			printf("%lld",m);  
			return 0;
        }
	  
      else if(nr5>k) dr=m-1;
      else st=m+1;
      }
printf("-1");
return 0;
}