Pagini recente » fmi-no-stress-7/solutii | Statistici Raoul Bocancea (Raoul_16) | Cod sursa (job #2947033) | Cod sursa (job #3251851) | Cod sursa (job #224624)
Cod sursa(job #224624)
#include <stdio.h>
int main() {
FILE *f;
int p;
f = fopen("fact.in", "rt");
fscanf(f, "%d", &p);
fclose(f);
freopen("fact.out", "wt", stdout);
if (!p) {
printf("1\n");
return 0;
}
long lower = 1, upper = p, middle, zeroes, temp;
while (lower <= upper) {
middle = (lower + upper) / 2;
zeroes = middle;
for (temp = middle; temp >= 5;)
zeroes += (temp /= 5);
printf("Try %ld -> %ld\n", middle, zeroes);
if (zeroes == p) {
printf("%ld\n", middle * 5);
return 0;
}
if (zeroes > p)
upper = middle - 1;
else
lower = middle + 1;
}
printf("-1\n");
return 0;
}