Pagini recente » Cod sursa (job #3314372) | Cod sursa (job #1013345) | Cod sursa (job #862382) | Cod sursa (job #1767558) | Cod sursa (job #3309705)
#include <bits/stdc++.h>
long int fact(unsigned long long int p) {
if (p == 0) return 1;
else {
long int sum = 0;
for (unsigned long long int i = 5; i <= p; i *= 5)
sum += std::floor(p / i);
return sum;
}
}
long long int cb (long int p, unsigned long long int a, unsigned long long int b) {
long long r = -1;
while (a <= b) {
unsigned long long c = (a + b) / 2, f = fact(c);
if (f == p) r = c, b = c - 1;
else if (f < p) a = c + 1;
else b = c - 1;
}
return r;
}
int main() {
std::ios::sync_with_stdio(false);
long int p;
std::ifstream in(fact.in);
std::ofstream out(fact.out);
in.tie(nullptr);
out.tie(nullptr);
in >> p;
long long int ans = cb(p, 1, 5 * p + 5);
out << ans;
in.close();
out.close();
return 0;
}