Cod sursa(job #1416616)

Utilizator VasilescuVasilescu Eliza Vasilescu Data 8 aprilie 2015 15:48:22
Problema Factorial Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>

int main(){
    FILE *fin, *fout;
    fin=fopen("fact.in", "r");
    fout=fopen("fact.out", "w");

    int p, gasit, cn, n, e2, e5, k,r, x, ls, ld;

    fscanf(fin, "%d", &p);

    if(p==0){
        n=1;
    }
    else{
        ls=5;
        ld=1000000000;
        gasit=0;
        while(gasit==0){
            n=(ld+ls)/2;
            x=5;
            r=n/5;
            k=0;
            while(x<n){
                k++;
                x*=5;
            }
            r+=(k-1)*k/2;
            if(r==p){
                gasit=1;
            }
            else{
                if(r>p){
                    ld=(ld+ls)/2;
                }
                else
                    ls=(ld+ls)/2;
            }


        }
        n=n-n%5;
    }

    fprintf(fout, "%d", n);
    fclose(fin);
    fclose(fout);
    return 0;
}