Cod sursa(job #788087)

Utilizator ParaipaNParaipan Jr. ParaipaN Data 14 septembrie 2012 07:47:47
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <cmath>
using namespace std;

long long zer(long long x)
{
	long long nrd=0, i;
	for(i=1; i<=14; i++)
	{
		nrd+=x/(long long)(round(pow((double)5, (double)i)));
	}
	return nrd;
}

long long cb(long long st, long long dr, int cautat)
{
	if(st>dr)
		return -1;
	else
	{
		long long mij=(st+dr)/2;
		if(zer(mij)==cautat) return mij;
		else if(zer(mij)>cautat) return cb(st, mij-1, cautat);
		else return cb(mij+1, dr, cautat);
	}
}

int main()
{
	long long n, x;
	ifstream f("fact.in");
	ofstream g("fact.out");
	f>>n;
	if(n==0)
		g<<1;
	else
	{
	x=cb(1, 100000000000LL, n);
	if(x>0)
	{
		if(x%5!=0)
		x-=x%5;
		g<<x;
	}
	else
	g<<x;
	}
}