Cod sursa(job #150375)

Utilizator rethosPaicu Alexandru rethos Data 6 martie 2008 21:26:51
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
#define NMAX 20000001
long nr(long x)
{ long nr=0;
  while (x%5==0)
	{ nr++;x/=5;
	}
  return nr;
}
int main()
{ long p,x[NMAX];
  FILE *f=fopen("fact.in","rt");
  fscanf(f,"%ld",&p);
  fclose(f);
  unsigned long st,dr,mij;
  long i;
  x[0]=0;
  for (i=1;i<NMAX;i++) x[i]=x[i-1]+nr(5*i);
  st=1;
  dr=NMAX-1;
  while (st<=dr)
	{ mij=(st+dr)/2;
	  if (x[mij]==p) break;
	  if (x[mij]>p) dr=mij-1;
		else st=mij+1;
	}
  FILE *g=fopen("fact.out","wt");
  if (p==0) fprintf(g,"0");
	else if (st>dr) fprintf(g,"-1");
		else fprintf(g,"%ld",mij*5);
  return 0;
}