Cod sursa(job #2158000)
Utilizator | Data | 10 martie 2018 08:56:54 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <cstdio>
#include <fstream>
#include <climits>
using namespace std;
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=INT_MAX-1;
while(st<=dr)
{
med=(st+dr)/2;
long long p=5,a=0;
while(p<=med)
{
a+=med/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;
}