Pagini recente » Cod sursa (job #2404016) | Cod sursa (job #1363726) | Cod sursa (job #2853919) | Cod sursa (job #2554485) | Cod sursa (job #1280393)
#include<stdio.h>
#include<climits>
FILE *out = fopen("fact.out", "w");
unsigned x;
unsigned countTrailingZeroes(unsigned n)
{
unsigned i, s = 0;
for (i = 5; i <= n; i *= 5)
s += n / i;
return s;
}
void DEI(unsigned st, unsigned dr)
{
unsigned mid, z;
mid = (st + dr) / 2;
z = countTrailingZeroes(mid);
if (z == x)
{
while (mid % 5) mid--;
if (mid == 0) mid++;
fprintf(out, "%u\n", mid);
}
else
{
if (st == dr) fprintf(out, "-1");
else
if (z < x) DEI(mid+1, dr);
else
DEI(st, mid-1);
}
}
int main()
{
FILE *in, *out;
in = fopen("fact.in", "r");
fscanf(in, "%u", &x);
DEI(0, UINT_MAX);
}