Cod sursa(job #514785)

Utilizator Catah15Catalin Haidau Catah15 Data 19 decembrie 2010 16:26:17
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>
using namespace std;
int main()
{
	long long p;
	ifstream f("fact.in");
	ofstream g("fact.out");
	f>>p;
	f.close();
	
	if(p == 0)
	{
		g<<1;
		return 0;
	}
	
	long long st = 5, dr = 4000000015;
	
	while(st < dr)
	{
		long long mij = (st + dr) / 2, n = 0, c = mij / 5;
		
		while(c != 0)
		{
			n+=c;
			c/=5;
		}
		
		if(n == p)
		{
			while(mij % 5 != 0)
				mij--;
			
			g<<mij;
			g.close();
			
			return 0;
		}
			else 
				if(n > p)dr = mij - 1;
			else st = mij + 1;
		
	}
	
	g<<-1;
	g.close();
	
	return 0;
}