Cod sursa(job #349922)

Utilizator blasterzMircea Dima blasterz Data 21 septembrie 2009 20:50:46
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
// @author Mircea Dima
// O(log2(P) * log5(n))

#include <cstdio>
#include <cstdlib>


inline int numOf5s(int n)
{
	int s = 0;
	while(n) s += n/5, n/=5;
	return s;
}

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

	int i, cnt;
	for(i = (1<<30), cnt=(1<<30); cnt; cnt>>=1)
		if(i - cnt >= 0)
			if(numOf5s(i-cnt) >= n) i-= cnt;

	if(numOf5s(i) == 0) i = -1;
	if(n == 0) i = 1;
	printf("%d\n", i);
	


	//system("pause");
	return 0;
}