Cod sursa(job #1219057)

Utilizator pulseOvidiu Giorgi pulse Data 13 august 2014 12:26:06
Problema Factorial Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <cstdio>

using namespace std;

int P;

int Solve(int n)
{
	int ans = 0, x = 1;
	while (x <= n)
	{
		x *= 5;
		ans += n / x;
	}
	return ans;
}

int BS(int l, int r)
{
	while (l <= r)
	{
		if (l == r)
		{
			if (Solve(r) == P)
				return r;
			else
				return -1;
		}
		int m = (l + r) / 2;
		if (Solve(m) >= P)
			r = m - 1;
		else
			l = m + 1;
	}
}

int main()
{
	freopen("fact.in", "r", stdin);
	freopen("fact.out", "w", stdout);
	scanf("%d", &P);
	printf("%d\n", BS(1, 2000000000));
	return 0;
}