Cod sursa(job #1281277)

Utilizator PikachuPikachu Pikachu Data 2 decembrie 2014 23:23:17
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <cstdio>

using namespace std;

inline int exp(int n)
{
	int p = 5, rasp = 0;
	while(p <= n)
	{
		rasp += n / p;
		p *= 5;
	}
	return rasp;
}

int binar(int st, int dr, int val)
{
	int med, last = -1;
	while(st <= dr)
	{
		med = st + (dr - st) / 2;
		if(exp(med) == val)
		{
			last = med;
			dr = med - 1;
		}
		else
		if(exp(med) >= val)
			dr = med - 1;
		else
			st = med + 1;
	}
	return last;
}

int main()
{
	freopen("fact.in", "r", stdin);
	freopen("fact.out", "w", stdout);

	int n;
	scanf("%d", &n);
	printf("%d\n", binar(1, 2000000000, n));

	return 0;
}