Cod sursa(job #515417)

Utilizator ooctavTuchila Octavian ooctav Data 21 decembrie 2010 14:15:37
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<deque>
#include<queue>
#include<set>
#include<vector>
using namespace std;

const int INF = 1000000005;

long long N, P;
long long nr;

bool ok(long long X)
{
	nr = 0;
	for(long long div = 5 ; div <= X ; div *= 5)
		nr += X / div;

	return(nr >= P);
}

long long caut_bin()
{
	long long REZ = 0, q = 1LL * (1<<30) * (1<<30);
	
	while(q)
	{
		if(!ok(REZ + q))
			REZ += q;
		q >>= 1;
	}
	
	ok(REZ + 1);
	return (nr == P ? REZ + 1 : -1);
}


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