Cod sursa(job #150634)

Utilizator rethosPaicu Alexandru rethos Data 7 martie 2008 10:14:50
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#define NMAX 0xffffffffffffffff
#define p2 27
#define NR 1000000
long nr(long x)
{ long nr=1;
  while (x%5==0)
	{ nr++;x/=5;
	}
  return nr;
}
int main()
{ long p,x[NR];
  FILE *f=fopen("fact.in","rt");
  fscanf(f,"%ld",&p);
  fclose(f);
  unsigned long long st,dr,mij;
  long i;
  x[1]=1;
  for (i=2;i<NR-1;i++) x[i]=x[i-1]+nr(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,"%lld",mij*5);
  fclose(g);
  return 0;
}