Cod sursa(job #140642)

Utilizator corina23Ciobanu Corina corina23 Data 22 februarie 2008 01:02:24
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<fstream.h>
#include<math.h>
ifstream f("fact.in");
ofstream g("fact.out");
long double z[11],p;
long double zero(long double n)
{long double z=0;
 while(floor(n/5)>0) {z+=floor(n/5); n=floor(n/5);}
 return z;
}

int main()
{int i;
 f>>p;
 if(p==0) g<<1;
 else
 {
 for(i=0;i<=10;i++)
	z[i]=zero(pow(5,i));
 long double c,n=0,p2=p;
 for(i=10;i>0;i--)
	if(p2>=z[i])
		{c=floor(p2/z[i]);
		 n=n+c*pow(5,i);
		 p2=p2-c*z[i];
		 }
 if(zero(n)==p) g<<n;
 else g<<-1;
 }
 f.close();
 g.close();
 return 0;
}