Cod sursa(job #202952)

Utilizator vlad.maneaVlad Manea vlad.manea Data 12 august 2008 13:43:25
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#define infinity 1000000000LL

long long P, i, ret, l, r, ans, n, x;

void read()
{
	freopen("fact.in", "r", stdin);
	scanf("%lld", &P);
}

long long calc(long long n)
{
	for (i = 5, ret = 0; i <= n; i *= 5)
		ret += n/i;

	return ret;
}

void bin()
{
	if (P) for (l = 1, r = infinity, ans = -1; l <= r; )
	{
		n = (l+r)/2;
		x = calc(n);
		if (x == P)
		{
			ans = n;
			r = n-1;
		}
		else if (x > P)
			r = n-1;
		else
			l = n+1;
	}
	else ans = 1;
}

void write()
{
	freopen("fact.out", "w", stdout);
	printf("%lld\n", ans);
}

int main()
{
	read();
	bin();
	write();

	return 0;
}