Pagini recente » Cod sursa (job #736119) | Cod sursa (job #2397131) | Cod sursa (job #857801) | Cod sursa (job #549450) | Cod sursa (job #432407)
Cod sursa(job #432407)
#include <stdio.h>
int nz(int n){
return (int)n/5+(int)n/25+(int)n/125+(int)n/625+(int)n/3125+(int)n/15625;
}
int main (){
long p, t, st, dr, m, gasit=0;
FILE *f=fopen("fact.in", "r");
fscanf(f, "%ld", &p);
fclose(f);
st=0; dr=1000000000L;
while (st<dr && !gasit) {
m = st + (dr - st) / 2;
t = nz(m);
if (t == p) {
gasit = 1;
break;
}
else if (t < p) st = m + 1;
else dr = m - 1 ;
}
FILE *g=fopen("fact.out", "w");
if (!gasit) fprintf(g, "-1\n");
else {
while (nz(m-1) == p) m--;
fprintf(g, "%ld\n", m);
}
fclose(g);
return 0;
}