Cod sursa(job #728246)

Utilizator alex.belcAlex Belc alex.belc Data 28 martie 2012 16:31:07
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <fstream>
using namespace std;
ifstream fi("fact.in");
ofstream fo("fact.out");
long long p,st,dr,m;
long long nrz(long long n)
// determina numarul de zerouri de la sfarsitul lui n!
{
	long long nrz,p;
	nrz=0;
	p=5;
	while (p<=n)
	{
		nrz+=n/p;
		p=p*5;
	}
	return nrz;
}

int main()
{
	fi>>p;
	st=1;
	dr=100000000;
	while (st<dr)
	{
		m=(st+dr)/2;
		if (nrz(m)<p)
			st=m+1;
		else
			dr=m;
	}
	if (nrz(st)==p)
		fo<<st;
	else
		fo<<-1;
	fi.close();
	fo.close();
	return 0;
}