Pagini recente » Cod sursa (job #708806) | Cod sursa (job #615828) | Cod sursa (job #1361997) | Cod sursa (job #927977) | Cod sursa (job #2602095)
#include <cstdio>
#include <climits>
using namespace std;
const long long INF = LLONG_MAX;
long long lagrange(long long n)
{
long long p = 5 , nr = 0;
while(p <= n)
{
nr = nr + n / p;
p = p * 5;
}
return nr;
}
long long bs(long long k)
{
long long st , dr , med , last , gasit;
st = 1;
dr = INF;
gasit = 0;
while(st < dr)
{
med = (st + dr) / 2;
if(lagrange(med) == k)
dr = med , gasit = 1;
else if(lagrange(med) > k)
dr = med - 1;
else
st = med + 1;
}
if(gasit == 0)
return -1;
return st;
}
int main()
{
freopen("fact.in" , "r" , stdin);
freopen("fact.out" , "w" , stdout);
long long n , nr;
scanf("%lld" , &n);
printf("%lld\n" , bs(n));
return 0;
}