Cod sursa(job #314504)

Utilizator iulia609fara nume iulia609 Data 11 mai 2009 22:56:21
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<stdio.h>
using namespace std;

long long z;

long long kmax(long long n)
 {long long x=n,kt;
  kt=0;
  while(x>=5) {x/=5;kt++;}
 return kt;
 }

 long long calculare(long long n)
  {long long ptemp=5,i,sumz=0,k;
   k=kmax(n);
   for(i=1;i<=k;i++)
	 {sumz+=(int)(n/ptemp);
      ptemp*=5;
	 }
	return sumz;   
  }
  
 long long cautare(long long inc, long long sf)
  {long long mij=(inc+sf)>>1,s;
   s=calculare(mij);
   if(z==s&&inc==sf) return mij;
    else if(inc>sf) return -1;
     else if(z>s) return cautare(mij+1,sf);
		else return cautare(inc,mij-1);
   }

 int main()
  {long long nr=100000000LL,rasp;
   
   FILE*f=fopen("fact.in","r"); 
   FILE*g=fopen("fact.out","w");	

   fscanf(f,"%llu",&z);
   
   if(z==0)fprintf(g,"0\n"); 
   rasp=cautare(0,nr);
   
  fprintf(g,"%d\n",rasp);

  fclose(f);
  fclose(g);
  return 0;
  }