Cod sursa(job #349927)

Utilizator blasterzMircea Dima blasterz Data 21 septembrie 2009 21:17:41
Problema Factorial Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
// @author Mircea Dima
// O(log2(P) * log5(n))

#include <cstdio>
#include <cstdlib>


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

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

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

	if(numOf5s(i) != n) i = -1;
	printf("%u\n", i);
	


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