Cod sursa(job #665021)

Utilizator andreea29Iorga Andreea andreea29 Data 21 ianuarie 2012 13:59:40
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 kb
#include<fstream>
using namespace std;
long long st, dr, mid, n;

long long fct (long long x)
{
	long long p, ret=0;

	for (p=5; p<=x; p*=5)
		ret+=x/p;

	return ret;
}

int main()
{
	ifstream f ("fact.in");
	ofstream h ("fact.out");
	f>>n;
	st=1;
	dr=1 << 30;

	while (st<dr-1)
		{
			mid=(st+dr)/2;
			if (fct(mid)<n) 
				st=mid;
			else 
				dr=mid;
		}
	if ( fct(st)==n ) 
		h<<st;
		else 
			if ( fct(dr)==n) 
				h<<dr;
			else 
				h<<'-1';
	return 0;
}