Pagini recente » Cod sursa (job #2065890) | Cod sursa (job #2077918) | Cod sursa (job #1180337) | Cod sursa (job #457848)
Cod sursa(job #457848)
#include <stdio.h>
const long long max = 0xFFFFFFULL;
long long x;
inline long long f(long long n) {
long long rVal = 0;
long long i;
long long k = 5;
while(k <= n) {
for(i = k; i <= n; i += k)
rVal ++;
k *= 5;
}
return rVal;
}
long long cauta(long long a, long long b) {
if(a > b)
return -1;
long long m = (a + b) / 2;
long long fm = f(m);
// fprintf(stderr, "f<%d,%d>(%d)=%d\n", a, b, m, fm);
if(fm == x) {
if(m == a)
return m;
return cauta(a, m);
}
else if(fm < x)
return cauta(m + 1, b);
else
return cauta(a, m - 1);
}
int main() {
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
long long n;
scanf("%lld", &x);
n = cauta(1, max);
printf("%lld\n", n);
fclose(stdout);
return 0;
}