Cod sursa(job #509266)

Utilizator auRSTARHreapca Aurelian auRSTAR Data 10 decembrie 2010 19:19:22
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<cstdio>
void read(),solve();
long long mij,nr,st,dr,P,aux;
int main()
{
	read();
	solve();
	return 0;
}
void read()
{
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	scanf("%lld",&P);
}
void solve()
{
	if(P==0){printf("1\n");return;}
	if(P==1){printf("0\n");return;}
	for(st=1,dr=500000000;dr-st-1;)
	{
		mij=(st+dr)/2;
		nr=0;
		for(aux=5;aux<=mij;aux*=5)nr+=mij/aux;
		if(nr==P){mij-=mij%5;printf("%lld\n",mij);return;}
		if(nr<P)st=mij; else dr=mij;
	}
	printf("-1\n");
}