Cod sursa(job #139785)

Utilizator Gulyan89Gulyan Gulyan89 Data 20 februarie 2008 17:41:49
Problema Factorial Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<fstream>
#include<iostream>
using namespace std;

long fact(unsigned long a)
{
	long nr = 0;
	long rVal = 0;
	unsigned long i = 5;
	while(nr=a/i)
	{
		if(nr==1)return rVal;
		rVal += nr;
		i*=5;
	}
	return rVal;
}

int main()
{
ifstream f1("fact.in");
ofstream f2("fact.out");
register unsigned long n, s, d, m, nr;
f1>>n;

if(n==0){f2<<1;f2.close();return 0;}
s = 0;
d = 2000000000;

while(s<d)
{
	m = (s+d)/2;
	nr = fact(m);
	if(n>nr)s=m+1;
	else if(n<nr)d=m-1;
	else if(nr==n)break;
}
if(m!=nr)m=-1;
f2<<m;
cout<<m;
f1.close();
f2.close();
return 0;}