Cod sursa(job #155127)

Utilizator Andreid91Ciocan Andrei Andreid91 Data 11 martie 2008 19:11:10
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<fstream.h>
#include<math.h>

long p;

long calcul (long n)
	{
	long i,j,q;
	i=1;
	while (n>=pow(5,i)) i++;
	i--;
	q=0;
	for (j=1;j<=i;j++) q+=n/pow(5,j);
	return q;
	}

void cauta (long &n,long a, long b)
	{
	long s;
	while (a+1<b && s!=p)
		{
		n=(a+b)/2;
		s=calcul(n);
		if (s<p) a=n;
			else if (s>p) b=n;
		}
	if (s!=p) if (calcul(a+1)==p) n=a+1;
			else if (calcul(a)==p) n=a;
				else n=-1;
	}


long main()
{
long n;
ifstream g("fact.in");
g>>p;
g.close();
cauta (n,1,450000000);
if (n!=-1) n-=n%5;
ofstream f("fact.out");
if (p<5) f<<0;
    else f<<n;
f.close();
return 0;
}