Pagini recente » Cod sursa (job #3280245) | Cod sursa (job #1622694) | Cod sursa (job #1464377) | Cod sursa (job #491211) | Cod sursa (job #1427609)
#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;
}