Pagini recente » Cod sursa (job #1873083) | Borderou de evaluare (job #1937112) | Cod sursa (job #3212624) | Cod sursa (job #1947272) | Cod sursa (job #2100369)
#include <fstream>
using namespace std;
long long zeros (int number) {
long long put = 5LL;
long long sum = 0;
while (put <= number) {
sum += number / put;
put *= 5LL;
}
return sum;
}
int main() {
ifstream input ("fact.in");
ofstream output ("fact.out");
int P;
input >> P;
int _left = 1;
int _right = 5 * P;
int solution = 0;
while (_left <= _right) {
int middle = (_left + _right) >> 1;
if (zeros(middle) >= P) {
solution = middle;
_right = middle - 1;
}
else {
_left = middle + 1;
}
}
if (zeros(solution) != P) {
output << -1 << '\n';
return 0;
}
solution = solution - solution % 5;
if (solution == 0) {
output << 1 << '\n';
}
else {
output << solution << '\n';
}
return 0;
}