Cod sursa(job #211441)

Utilizator danciacCracan Dan danciac Data 2 octombrie 2008 11:46:09
Problema Factorial Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#define fin "fact.in"
#define fout "fact.out"

FILE *fi,*fo;

long factorial(long N) {
  long i, j, result, dp;

  dp=0; result = 1;

  for(i = 1; i <= N; i++) {

    j = i;                  //divide i by 2 and 5
    while (! (j % 2)) {
      j /= 2; dp++;
    }
    while (! (j % 5)) {
      j /= 5; dp--;
    }

    result = (result * (j % 10)) % 10;
  }

  for(i = 1; i <= dp; i++) {
    result = (result * 2) %10;
  }

  return result;
}

int main() {
  long n,bul,p;
  fi = fopen(fin,"r");
  fscanf(fi,"%ld %ld",&n,&p);
  fo = fopen(fout,"w");
  n=0;
  while (!bul)
  {
   n++;
   if (factorialul(n) == p)
   {
      fprintf(fo,"%ld\n",n);
      bul = 1;
   }
  }
  fclose(fi);
  fclose(fo);
  return 0;
}