Cod sursa(job #2157998)
| Utilizator | Data | 10 martie 2018 08:54:26 | |
|---|---|---|---|
| Problema | Factorial | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <cstdio>
#include <fstream>
using namespace std;
const long long NMAX=1e7;
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
long long n,st,dr,med,ans=-1;
scanf("%lld",&n);
st=1;
dr=NMAX;
while(st<=dr)
{
med=(st+dr)/2;
long long p=5,a=0;
while(p<=n)
{
a+=n/p;
p*=5;
}
if(a==n)
{
dr=med-1;
ans=med;
}
else if(a>n)
dr=med-1;
else
st=med+1;
}
if(ans==-1)
printf("-1");
else
printf("%lld",ans);
return 0;
}
