Pagini recente » Cod sursa (job #2612156) | Cod sursa (job #1190835) | Cod sursa (job #2714476) | Cod sursa (job #3256956) | Cod sursa (job #2718217)
#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() {
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;
}