Cod sursa(job #244113)
Utilizator | Data | 14 ianuarie 2009 16:44:45 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include<fstream.h>
ifstream f("fact.in");
ofstream g("fact.out");
long p,li,ls,m,y,nr,z;
int main ()
{
f>>p;
li=1;
ls=1000000000;
if(p==0)
g<<"1"<<"\n";
else
{while(li<=ls)
{m=(ls+li)/2;
y=m;
nr=0;
z=5;
while(z<=y)
{nr=nr+y/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;}}
f.close();
g.close();
return 0;
}