Cod sursa(job #75446)

Utilizator mircea_infoSuciu Mircea-Gabriel mircea_info Data 1 august 2007 22:21:05
Problema Factorial Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
long p,n,a[50];
void citire(){
   freopen("fact.in","r",stdin);
   scanf("%ld",&p);
}
int nrzero(long n){
  int k=0;
  for(int i=5;i<=n;i*=5)
    k+=n/i;
  return k;
}
long cautare(long st, long dr){
     int mij=(st+dr)/2;
     if(nrzero(mij)==p){
        while(mij%5!=0) 
          mij--;
        return mij;}  
     else if(st<dr){
             if(nrzero(mij)>p)
               return cautare(st,mij-1);
             else
               return cautare(mij+1,dr);}                              
     else
        return -1;     
}
void afisare(){
     freopen("fact.out","w",stdout);
     if(p==0)
         printf("1");     
     else
         printf("%ld",cautare(1,10000000));
     fclose(stdout);
}
int main(){
    citire();
    afisare();
    return 0;
}