Pagini recente » Cod sursa (job #1670978) | Cod sursa (job #2447390) | Cod sursa (job #357707) | Cod sursa (job #1490093) | Cod sursa (job #1427608)
#include <iostream>
using namespace std;
int zeroes(int n)
{
if (n < 5)
return 0;
int k = 5;
int nr = 0;
while (k <= n)
{
nr += n / k;
k *= 5;
}
return nr;
}
int bsearch(int n)
{
int l = 5;
int r = 1 << 30;
while (r >= l)
{
int m = (l + r) / 2;
int nr = zeroes(m);
if (nr == n)
return m;
if (nr > n)
r = m - 1;
else
l = m + 1;
}
return -1;
}
int main()
{
//freopen("fact.in", "r", stdin);
//freopen("fact.out", "w", stdout);
int n;
cin >> n;
if (n == 0)
cout << 1;
int x = bsearch(n);
if (x == -1) cout << x;
while (x % 5 != 0)
x--;
cout << x;
}