Cod sursa(job #43420)

Utilizator cosminpdrfischer2004 cosminp Data 30 martie 2007 03:01:14
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#include <fstream>

using namespace std;


long exp(long long n)
{
	long long exp = 0;
	
	while (n)
	{
		exp +=(n/5);
		n /= 5;
	}
	
	return exp;
}


long binarySearch(long long a, long long b, long long p)
{
	long long m = (a + b)/2;
	long long e = exp(m);
	
	if (a > b) return -1;
	
	if (e > p) return binarySearch(a, m-1, p);
	if (e < p) return binarySearch(m+1, b, p);
	if (e == p)
	{
		while (exp(m) == p && m >= a)
			m--;
		
		return m+1;
	}
}


int main()
{
	fstream f, g;
	long long n, p;

	// INPUTS
	f.open("fact.in", ios :: in);
	f >> p;
	f.close();
	
	n = binarySearch(1, 2000000000, p);
	
	g.open("fact.out", ios :: out);
	g << n;
	g.close();
	
	return 0;
}