Pagini recente » Cod sursa (job #152009) | Cod sursa (job #5889) | Cod sursa (job #1909691) | Cod sursa (job #2433927) | Cod sursa (job #1181417)
#include <cstdio>
using namespace std;
int nrzero (int mid) {
int nr5 = 5, nrz = 0;
while (nr5 <= mid) {
nrz += mid / nr5;
nr5 *= 5;
}
return nrz;
}
int main () {
int p, st = 1, dr, mid, nrz;
FILE *in = fopen ("fact.in", "r");
fscanf (in, "%d", &p);
fclose (in);
if (p == 0) {
FILE *out = fopen ("fact.out", "w");
fprintf (out, "1");
fclose (out);
return 0;
}
dr = p * 5;
FILE *out = fopen ("fact.out", "w");
while (st <= dr) {
mid = (st + dr) / 2;
nrz = nrzero (mid);
if (nrz >= p)
dr = mid - 1;
else if (nrz < p)
st = mid + 1;
}
if (nrzero (st) == p)
fprintf (out, "%d\n", st);
else fprintf (out, "-1\n");
fclose (out);
return 0;
}