Cod sursa(job #24048)

Utilizator AdixSuciu Adrian Adix Data 1 martie 2007 19:55:49
Problema Factorial Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb

#include <stdio.h>
#include <math.h>
long long p;
long long n;
void citire(){
     FILE *in;
     in=fopen("fact.in","r");

     fscanf(in,"%lld",&p);   
     fclose(in); 
     }
     
void scriere(){
FILE *out;
     out=fopen("fact.out","w");
     fprintf(out,"%lld",n);
     fclose(out);
     }

double nrz(long long i){
double x,k,sum;
sum=0;
x=log(i)/log(5);
 for(k=1;k<=x;k++){
                  sum=sum+floor(i/pow(5,k));
                  }
 return sum;
}

void procesare(){
long long i;
long long a=0;
long long st,dr,c,f;
st=0;
dr=500000000;
n=1;
if(p>0){/*

 for(i=p*5;i<=50000000;i+=5){
	a=nrz(i);
  if(a==p){ n=i;break; }
  if(a>p) { n=-1;break;}}}
  
 */
 while(n){  c=(st+dr)/2;
								 f=nrz(c);
								 if(f==p&&st==dr) {n=st;break;}
								 if(dr<st) {n=-1;break;}

				 if(p>f) st=c+1;
	       	  	   else dr=c-1;               
                 
                 }
 
}  
 }
     
int main(){
 citire();
 procesare();
 scriere();
 return 0;   
}