Cod sursa(job #384873)

Utilizator andrei.finaruFinaru Andrei Emanuel andrei.finaru Data 21 ianuarie 2010 16:50:41
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include<fstream.h>
#include<math.h>
ifstream f("fact.in");
ofstream g("fact.out");
long long n,p,i,t,s,d,gasit,z;
int main()
{
	f>>p;if(p==0)g<<'1';
	else{
	gasit=0;s=1;d=2147483647;
	while(s<=d&&gasit==0)
	{n=(s+d)/2;i=1;z=0;
	while(pow(5,i)<=n)
		{t=pow(5,i);
		z=z+n/t;
		i++;}
	if(z==p) gasit=1;
	else if(z<p) s=n+1;
			else d=n-1;}
	if(n==0) g<<"-1";
		else if(gasit==1) 
		{n=n-n%5;
		g<<n;}
			else g<<"-1";}
	f.close(); g.close();
	return 0;
}