Cod sursa(job #502186)

Utilizator alexm456alexandru maican alexm456 Data 18 noiembrie 2010 09:47:54
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>
long long P;
long long zero(long long med)
{
long long s=0,numitor=5;
while (med/numitor)
	{
	s=s+med/numitor;
	numitor=numitor*5;	
	}
return s;
}
long long bs()
{
long long st,dr,med,last=1;
st=1; dr=(1ll<<62)-1;
while(st<=dr)
	{
	med=st+((dr-st)>>1);
	if (P<=zero(med))
		{
		last=med;
		dr=med-1;
		}
	else
		st=med+1;
	}
return last;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
long long N;
scanf("%lld",&P);
N=bs();
if (zero(N)!=P) printf("-1\n");
else printf("%lld\n",N);
return 0;
}