Cod sursa(job #84285)

Utilizator MarquiseMarquise Marquise Data 14 septembrie 2007 12:31:19
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
long long p;

long long zero (long m)
{
	long nr = 0;
	while (m >=5)
	{
		m /= 5;
		nr += m;
	}
	return nr;
}


int main()
{
	long long  st = 0, dr = 100000000000LL, m, z, ex = 1;
	freopen("fact.in", "r", stdin);
	freopen("fact.out", "w", stdout);
	scanf("%ld", &p);
	if (p == 0)
		printf("1");
	else
	{
	while ( dr - st >= 0 && ex)
	{
		m = (st + dr) / 2;
		z = zero(m);
		if ( p == z)
			printf("%lld", m/5*5), ex = 0;
		else
			if ( z > p)
				dr = m-1;
			else
				st = m+1;
	}
	if ( ex == 1)
		printf("-1\n");
	}
	return 0;
}