Pagini recente » Cod sursa (job #2207810) | Cod sursa (job #462180) | Cod sursa (job #2304173) | Cod sursa (job #1541473) | Cod sursa (job #2622511)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int countZeros(long long x) {
int sum = 0;
int k = 1;
int p5 = 5;
while (p5 <= x) {
sum += x / p5;
p5 = pow(5, ++k);
}
return sum;
}
int findAns(int x) {
int left = 0, right = 400000015;
while (left <= right) {
int mid = (left + right ) / 2;
int zeroes = countZeros(mid);
if (zeroes == x) {
while(countZeros(mid - 1) == x) {
mid--;
}
return mid;
}
if (zeroes < x) {
left = mid + 1;
continue;
}
if (zeroes > x) {
right = mid - 1;
continue;
}
}
return -1;
}
int main() {
ifstream fin("fact.in");
ofstream fout("fact.out");
int n;
fin >> n;
cout << findAns(n);
}