Pagini recente » Cod sursa (job #274749) | Cod sursa (job #1497443) | Cod sursa (job #1704445) | Profil abductedbyaliens | Cod sursa (job #476225)
Cod sursa(job #476225)
#include <stdio.h>
int main()
{
int p, pp, n = 0;
FILE *f;
f = fopen("fact.in", "r");
fscanf(f, "%d", &p);
fclose(f);
pp = p;
int fact[] = {5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125};
int zero[] = {1, 6, 31, 156, 781, 3906, 19531, 97656, 488281, 2441406, 12207031, 61035156, 305175781};
int i;
for (i = 12; i >= 0; i--)
if (p >= zero[i])
{
n += p / zero[i] * fact[i];
if (p / zero[i] % 5 == 0)
{
n = -1;
break;
}
p = p % zero[i];
}
if (n != -1)
for (i = 0; i <= 12; i++)
if (fact[i] == n && pp < zero[i])
{
n = -1;
break;
}
if (pp == 0) n = 1;
f = fopen("fact.out", "w");
fprintf(f, "%d\n", n);
fclose(f);
return 0;
}