Pagini recente » Cod sursa (job #1971948) | Cod sursa (job #442005) | Cod sursa (job #2147312) | Cod sursa (job #606539) | Cod sursa (job #2941507)
#include <stdio.h>
#define MAXREZ 400000015
int main() {
FILE *fin, *fout;
int p, st, dr, mj, s, t;
fin = fopen("fact.in", "r");
fscanf(fin, "%d", &p);
fclose(fin);
st = 0;
dr = MAXREZ + 1;
while(dr - st > 1) {
mj = (dr + st) / 2;
s = 0;
t = 5;
while(mj / t > 0) {
s += mj / t;
t *= 5;
}
if(s > p)
dr = mj;
else
st = mj;
}
while(st % 5 > 0)
st--;
s = 0;
t = 5;
while(st / t > 0) {
s += st / t;
t *= 5;
}
fout = fopen("fact.out", "w");
if(s == p)
fprintf(fout, "%d\n", st == 0 ? 1 : st);
else
fprintf(fout, "-1\n");
fclose(fout);
return 0;
}