Cod sursa(job #84252)

Utilizator MarquiseMarquise Marquise Data 14 septembrie 2007 11:33:23
Problema Factorial Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<stdio.h>
long p;

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


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