Cod sursa(job #629082)
| Utilizator | Data | 2 noiembrie 2011 17:07:57 | |
|---|---|---|---|
| Problema | Factorial | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<fstream>
using namespace std;
int p,nr,n,m;
int cautare_binara(int st,int dr)
{
int k,sol=-1;
while(st<=dr)
{
m=st+(dr-st)/2;
nr=0;
k=5;
n=m;
while(n/k)
{
nr+=n/k;
k*=5;
}
if(nr==p)
sol=m;
if(nr<p)
st=m+1;
else dr=m-1;
}
return sol;
}
int main()
{
ifstream fin("fact.in");
ofstream fout("fact.out");
fin>>p;
if(p==0)
fout<<'1\n';
else
fout<<cautare_binara(1,5*p)<<'\n';
return 0;
}
