Cod sursa(job #807563)

Utilizator Mirc100Mircea Octavian Mirc100 Data 4 noiembrie 2012 22:22:32
Problema Factorial Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>

long nrzero(long n){
     long nr=0;
     if(n<5)
         return 0;
     while(n>=1){
         nr+=n/5; 
         n=n/5;
     }
     return nr;
}

long p;
long factorial(){
     long l=0; long r=100000000;
     if(p==0)
         return 1;
     while(l<=r){
        long m=(l+r)/2;
        long nm=nrzero(m);
    
        if(nm==p)
            return m;
        if(nm>p)
           r=m-1;
        else 
           l=m+1;    
           }      
}         


int main(){
    FILE *f=fopen("fact.in","r");
    FILE *g=fopen("fact.out","w");
    fscanf(f,"%ld",&p);
 
    if(p==0)
        fprintf(g,"%ld",1);
    else    
       fprintf(g,"%ld",factorial()/5*5); 
   
    fclose(f);
    fclose(g);   
    return 0;
}