Cod sursa(job #245696)

Utilizator ilincaSorescu Ilinca ilinca Data 18 ianuarie 2009 17:13:23
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <stdio.h>

#define nmax 1 << 30
#define pr(x) fprintf(stderr,#x" = %lld\n",x)



int zero (int w)
{
	int s;
	int p=5;
	for (s=0, p=5; w >= p; p*=5)
		s+=w/p;
	return s;
}

int binary_search (int n)
{
	int st=1, dr=1 << 30, m;
	while (st < dr)
	{
		m=(st+dr)>>1;
		if (zero (m) >= n)
			dr=m;
		else
			st=m+1;
	}
	if (zero (st) == n)
		return st; 
	return -1;
}

int main ()
{
	freopen ("fact.in", "r", stdin);
	freopen ("fact.out", "w", stdout);
	int n;
	scanf ("%d", &n);
	printf ("%d\n", binary_search (n));
	return 0;
}