Cod sursa(job #1722097)

Utilizator DevilOnFieldTudor Horia Niculescu DevilOnField Data 27 iunie 2016 12:16:05
Problema Factorial Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>

#define PMAX 100000000

FILE *in, *out;

int numeri(int nr) {
    int expo, s;
    expo = 5;
    s = 0;
    while(expo <= nr) {
        s = s + (nr / expo);
        expo = expo * 5;
    }
    return s;
}

int main ()
{
    int nr0, st, dr, m, gayvar;

    in = fopen("fact.in", "r");
    out = fopen("fact.out", "w");

    fscanf(in, "%d", &nr0);

    st = 1;
    dr = PMAX * 5;
    gayvar = 0;

    while(st <= dr) {
        m = (st + dr) / 2;
        if(numeri(m) >= nr0) {
            dr = m - 1;
            gayvar = m;
        } else {
            st = m + 1;
        }
    }

    if(numeri(gayvar) != nr0) {
        fprintf(out, "-1");
    } else {
        fprintf(out, "%d", gayvar);
    }

    fclose(in);
    fclose(out);

    return 0;
}