Pagini recente » Borderou de evaluare (job #2496774) | Cod sursa (job #1453590)
#include <stdio.h>
#include <stdlib.h>
long nr_zerouri_sfarsit(long x) {
long nr = 0;
while(x >= 5) {
nr += x/5;
x /= 5;
}
return nr;
}
long cautare_binara(long a, long b, long p){
long r = (a+b)/2;
long nr_z = nr_zerouri_sfarsit(r);
if(p > nr_z)
return cautare_binara(r+1, b, p);
if(p < nr_z)
return cautare_binara(a, r-1, p);
//r -= r%5;
return r;
}
int main() {
FILE *f1 = fopen("fact.in", "r");
FILE *f2 = fopen("fact.out", "w");
long p;
fscanf(f1, "%ld", &p);
long n;
n = cautare_binara(0, 10000000, p);
printf("%ld\n", n);
fprintf(f2, "%ld\n", n);
fclose(f1);
fclose(f2);
return 0;
}