Cod sursa(job #1465502)
| Utilizator | Data | 27 iulie 2015 15:27:44 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <cstdio>
#include <iostream>
using namespace std;
int nr_zero(int n)
{
int nr=0;
while(n>0)
{
nr=nr+n/5;
n/=5;
}
return nr;
}
int caut_bin(int p)
{
long long dr=500000000,st=1,mij,ans=-1;
while(st<=dr)
{
mij=(st+dr)/2;
int aux=nr_zero(mij);
if (p>aux)
st=mij+1;
else if (p<=aux)
{
dr=mij-1;
if (p==aux)
ans=mij;
}
}
return ans;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p;
scanf("%d",&p);
cout<<caut_bin(p);
return 0;
}
