Cod sursa(job #1238422)
| Utilizator | Data | 6 octombrie 2014 22:24:46 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int n;
int nrz(int x)
{
int i,s=0;
for(i=5;i<=x;i*=5)
{
s=s+x/i;
}
return s;
}
int bs(int st,int dr,int c)
{
int mij,k;
while(st<=dr)
{
mij=(st+dr)/2;
k=nrz(mij);
if(k>=c)
dr=mij-1;
else
st=mij+1;
}
return st;
}
int main()
{int p;
in>>n;
p=bs(1,500000000,n);
if(nrz(p)==n)
out<<p<<'\n';
else
out<<-1<<'\n';
return 0;
}
