Pagini recente » Cod sursa (job #2180285) | Cod sursa (job #704471) | Cod sursa (job #1179846) | Cod sursa (job #1130215) | Cod sursa (job #457841)
Cod sursa(job #457841)
#include <stdio.h>
const int max = 0x8FFFFFF;
int f(int n) {
int rVal = 0;
int i;
int k = 5;
while(k <= n) {
for(i = k; i <= n; i += k)
rVal ++;
k *= 5;
}
return rVal;
}
int cauta(int a, int b, int x) {
if(a > b)
return -1;
int m = (a + b) / 2;
int 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, x);
}
else if(fm < x)
return cauta(m + 1, b, x);
else
return cauta(a, m - 1, x);
}
int main() {
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
int p, n;
scanf("%d", &p);
n = cauta(1, max, p);
printf("%d\n", n);
fclose(stdout);
return 0;
}