Pagini recente » Cod sursa (job #1133442) | Cod sursa (job #3290031) | Cod sursa (job #1179847) | Cod sursa (job #2389073) | Cod sursa (job #457840)
Cod sursa(job #457840)
#include <stdio.h>
const int max = 0xFFFFFFF;
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);
if(f(max) < p)
*(char*)(0) = 2;
n = cauta(1, max, p);
printf("%d\n", n);
fclose(stdout);
return 0;
}