Cod sursa(job #291355)

Utilizator mathboyDragos-Alin Rotaru mathboy Data 29 martie 2009 18:24:01
Problema Factorial Scor 100
Compilator cpp Status done
Runda The Beginners Marime 0.53 kb
#include <stdio.h>
#define MAX 1000000000
int n;
int bin(int p)
{
	int hi,mid,lo,e,a,max;
	for (lo=1,hi=MAX+1,max=-1; lo<=hi; )
	{
		mid=lo+(hi-lo)/2;
		a=mid;
		e=0;
		while(a)
			e+=(a/=5);
		if (e==p)
			max=mid;
		if(p<=e)
			hi=mid-1;
		else if(p>e)
			lo=mid+1;
	}
	if (max!=-1)
		return max;
	return -1;
}
int main()
{
    freopen ("fact.in","r",stdin);
    freopen ("fact.out","w",stdout);
    scanf ("%d",&n);
    if (n==0)
        printf ("1");
    else
        printf ("%d",bin(n));
    return 0;
}