Pagini recente » Cod sursa (job #2557729) | Cod sursa (job #1340004) | Cod sursa (job #2484061) | Cod sursa (job #675984) | Cod sursa (job #2100379)
#include <fstream>
#include <cmath>
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 solution = -1;
int lim = 10 * P;
int sqr = (int)sqrt(double(lim / 2));
for (int currentNumber = 1 ; currentNumber <= lim ; currentNumber += sqr) {
if (zeros(currentNumber + sqr - 1) >= P) {
for (int number = currentNumber ; number <= currentNumber + sqr - 1 ; ++ number) {
if (zeros(number) == P) {
solution = number;
break;
}
}
break;
}
}
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;
}