Pagini recente » Cod sursa (job #2905242) | Cod sursa (job #1600102) | Rezultatele filtrării | Cod sursa (job #2201910) | Cod sursa (job #2173105)
#include <stdio.h>
#include <limits.h>
int main(void)
{
unsigned s, mid, pos, r, n;
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
scanf("%u", &n);
if (n == 0) {
puts("1");
return 0;
}
for (mid = pos = (unsigned) INT_MAX+1; mid; mid >>= 1) {
r = 0;
s = 1;
do {
s *= 5;
r += (pos - mid) / s;
} while ((pos - mid) / s > 0);
if (r >= n) {
pos -= mid;
}
}
r = 0;
s = 1;
do {
s *= 5;
r += pos / s;
} while (pos / s > 0);
if (r == n) {
printf("%u", pos);
} else {
puts("-1");
}
return 0;
}