Cod sursa(job #331399)

Utilizator pykhNeagoe Alexandru pykh Data 13 iulie 2009 21:29:17
Problema Factorial Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
long long lo, hi, mid, P, k, kk;
long long desc(long long nr)
	{
	long long i=5,s=0;
	while(nr/i){
		s+=nr/i;
		i*=5;
	}
	return s;
	}

long long BS()
	{
		for(lo=1,hi=100000000;lo<=hi;)
		{
		mid=lo+(hi-lo)/2;
		k=desc(mid);
		if(k==P)return mid;
		else if(k<P)lo=mid+1;
		else hi=mid-1;
		}
		return -1;
}

int main()
	{
		freopen("fact.in","r",stdin);
		freopen("fact.out","w",stdout);
		scanf("%lld", &P);
		if(P==0)printf("1");
		else
		kk=BS();
		if(kk==-1)printf("%lld",kk);
		else{
		while(kk%5)
			kk--;
		printf("%lld",kk);}
		return 0;
}