Cod sursa(job #331377)

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

long BS()
	{
		for(lo=1,hi=1000000000;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("%ld", &P);
		if(P==0)printf("1");
		else{
		kk=BS();
		while(kk%5)
			kk--;
		printf("%ld",kk);}
		return 0;
}