Cod sursa(job #174037)
| Utilizator | Data | 8 aprilie 2008 13:39:48 | |
|---|---|---|---|
| Problema | Factorial | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<fstream.h>
#include<math.h>
long s=1,d=2000000,m,k,c,z=0,n,p;
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
f>>n;
if(n==0) g<<"1";
else
{
m=(s+d)/2;
while (z!=n&&s<d)
{ z=0; k=5; p=1;
while(k<=m)
{
c=m/k; z+=c;
p++;
k=pow(5,p);
}
if(z<n) {s=m+1; m=(s+d)/2;}
else if(z>n) {d=m-1; m=(s+d)/2;}
}
if(z==n) g<<m-(m%5);
else g<<"-1";
}
f.close();
g.close();
return 0;
}