Cod sursa(job #2375740)

Utilizator Teod12ALEXANDRESCU teodora Teod12 Data 8 martie 2019 11:53:24
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>

int main()
{
    FILE *fin,*fout;
    fin=fopen("factorial.in","r");
    fout=fopen("factorial.out","w");
    long long p,st,dr,mij,poz,k,cp,l5,l2;
    fscanf(fin,"%lld",&p);
    if(p==0){
        fprintf(fout,"1");
    }
    else{
        st=1;
        dr=p*20;
        while(st<=dr){
            mij=(dr+st)/2;
            l5=0;
            cp=1;
            while(cp*5<=mij){
                cp=cp*5;
                l5=l5+mij/cp;
            }
            l2=0;
            cp=1;
            while(cp*2<=mij){
                cp=cp*2;
                l2=l2+mij/cp;
            }
            if(l2<l5)
                k=l2;
            else
                k=l5;
            if(k<p)
                st=mij+1;
            else
                if(k>p)
                    dr=mij-1;
                else{
                    poz=mij;
                    dr=mij-1;
                }
        }
        fprintf(fout,"%lld",poz);
    }
    return 0;
}