Cod sursa(job #696870)
| Utilizator | Data | 28 februarie 2012 20:39:25 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<fstream>
using namespace std;
int main()
{
ifstream fcin("fact.in");
ofstream fcout("fact.out");
long long p,n,i,j,m,x,nr,asa;
fcin>>p;
if(p==0)
fcout<<1;
else
{
for(bool ok=1,i=1,j=5*p;i<=j;)
{
m=(i+j)/2;
x=m;
asa=5;
nr=0;
while(x && ok)
{
nr+=x/asa;
asa/=5;
}
if(nr==p)
{
cout<<x;
ok=0;
}
else
if(nr<p)
j=m-1;
else
i=m+1;
}
if(ok==1)
fcout<<-1;
}
return 0;
}
