Pagini recente » Cod sursa (job #1632547) | Cod sursa (job #2977077) | Cod sursa (job #614269) | Cod sursa (job #1633030) | Cod sursa (job #2718220)
#include <bits/stdc++.h>
using namespace std;
template <class T, class UnaryPredicate>
T lowerBound(T left, T right, UnaryPredicate condition) {
while (left <= right) {
T middle = left + (right - left) / 2;
if (condition(middle)) {
right = middle - 1;
} else {
left = middle + 1;
}
}
return left;
}
long long numberOfZeroes(long long val) {
long long ans = 0;
while (val > 0) {
val /= 5;
ans += val;
}
return ans;
}
int main() {
freopen("fact.in", "rt", stdin);
freopen("fact.out", "wt", stdout);
long long N;
cin >> N;
long long ans = lowerBound(1LL, 5 * N, [N](long long val) {
return numberOfZeroes(val) >= N;
});
cout << (numberOfZeroes(ans) == N ? ans : -1);
return 0;
}