Cod sursa(job #1803873)

Utilizator ruxi.icleanuRuxandra Icleanu ruxi.icleanu Data 11 noiembrie 2016 23:04:04
Problema Factorial Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>

#define MAXN 500000000

inline int nr_0(int n) {
    int p, exp2, exp5;
    p=2;
    exp2=0;
    while(n/p>0) {
        exp2+=(n/p);
        p*=2;
    }
    p=5;
    exp5=0;
    while(n/p>0) {
        exp5+=(n/p);
        p*=5;
    }
    return (exp2<exp5 ? exp2 : exp5);
}

int c_binara(int k) {
    int st, dr, mij, rez;
    st=0;
    dr=MAXN;
    while(dr-st>1) {
        mij=(st+dr)/2;
        if(nr_0(mij)>=k)
            dr=mij;
        else
            st=mij;
    }
    rez=(nr_0(dr)==k ? dr : -1);
    return rez;
}

int main()
{
    int k;
    FILE *fi, *fo;
    fi = fopen("fact.in", "r");
    fo = fopen("fact.out", "w");
    fscanf(fi, "%d", &k);
    fprintf(fo, "%d", c_binara(k));
    fclose(fi);
    fclose(fo);
    return 0;
}