Pagini recente » Cod sursa (job #3330662) | Cod sursa (job #2884502) | Cod sursa (job #2744049) | Cod sursa (job #3036850) | Cod sursa (job #3309706)
#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;
}