Cod sursa(job #244128)
| Utilizator | Data | 14 ianuarie 2009 16:54:53 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<fstream.h>
ifstream f("fact.in");
ofstream g("fact.out");
long n,p,li,ls,m,nr,z;
int main()
{f>>p;
if(p==0)
g<<1<<'\n';
else
{li=1;
ls=1000000000;
while(li<=ls)
{m=(ls+li)/2;
nr=0;
z=5;
while(z<=m)
{nr=nr+m/z;
z=z*5;
}
if(nr==p)
break;
else
if(nr>p)
ls=m-1;
else
li=m+1;
}
if(li>ls)
g<<"-1"<<'\n';
else
{while(m%5!=0)
m--;
g<<m<<'\n';
}
}
f.close();
g.close();
return 0;
}