Pagini recente » Cod sursa (job #2768078) | Cod sursa (job #2653481) | Cod sursa (job #2110020) | Cod sursa (job #517671) | Cod sursa (job #1807260)
#include <cstdio>
using namespace std;
const long long INF=9999999999999999;
inline long long pow5(long long n)
{
long long nr=5,sum=0;
while(n>=nr)
{
sum+=n/nr;
nr*=5LL;
}
return sum;
}
inline long long binarysearch(long long p)
{
long long st=0,dr=INF,med;
while(st<dr)
{
med=(st+dr)>>1;
if (pow5(med)==p)
return med;
else
if (pow5(med)<p)
st=med+1;
else
dr=med-1;
}
return st;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
long long p,x;
scanf("%lld",&p);
x=binarysearch(p);
if (p==0)
{
printf("1\n");
return 0;
}
if (pow5(x)!=p)
printf("-1\n");
else
{
while(x%5)
--x;
printf("%lld\n",x);
}
}