Cod sursa(job #377983)
Utilizator | Pufu Cristian pufu | Data | 27 decembrie 2009 10:07:51 |
---|---|---|---|
Problema | Factorial | Scor | 5 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <stdio.h>
#include <stdlib.h>
int fact (int n)
{
int i, p;
int k = 0;
if (n == 0)
return 1;
p = 1;
for (i = 1; i <= n; i++)
if ((p % 10) == 0)
{
p = p / 10;
k++;
p = p * i;
}
else
p = p * i;
return k;
}
int main()
{
int N, P;
FILE *f, *g;
f = fopen ("fact.in", "r");
g = fopen ("fact.out", "w");
fscanf (f, "%d", &P);
N = 1;
while (1)
{
if (fact(N) == P)
{
fprintf(g, "%d", N - 1);
break;
}
N++;
}
fclose(f);
fclose(g);
return 0;
}