Pagini recente » Cod sursa (job #747235) | Cod sursa (job #829498) | Cod sursa (job #1620826) | Cod sursa (job #2381916) | Cod sursa (job #1430088)
#include <stdio.h>
#define HIGH 25000000
int n0;
inline int countFive(int x) {
int div = 5;
int ans = 0;
while (x >= div && ans <= n0) {
ans = ans + (x / div);
div = div + (div << 2);
}
return ans;
}
int main(void) {
FILE *f = fopen("fact.in", "r");
int lo, hi;
fscanf(f, "%d", &n0);
fclose(f);
if (n0) {
lo = -1;
hi = HIGH + 1;
while (hi - lo > 1) {
int mid = lo + ((hi - lo) >> 1);
if (countFive(mid) < n0) {
lo = mid;
} else {
hi = mid;
}
}
f = fopen("fact.out", "w");
fprintf(f, "%d\n", countFive(hi) == n0 ? hi : -1);
} else {
f = fopen("fact.out", "w");
fputs("1\n", f);
fclose(f);
}
fclose(f);
return 0;
}