Cod sursa(job #1614489)

Utilizator alex.stancuAlex Stancu alex.stancu Data 25 februarie 2016 22:56:27
Problema Factorial Scor 90
Compilator c Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>

FILE *in;
FILE *out;

int zero(int n) {
    int k = 0;
    while(n >= 5) {
        k += n / 5;
        n /= 5;
    }
    return k;
}

int cautare_binara(int l, int r, int p) {
    int ans = 0;

    while (l <= r) {
        int mid = l + (r - l) / 2;

        if (zero(mid) >= p) {
            if (zero(mid) == p) {
                ans = mid;
            }
            r = mid - 1;
        } else {
            l = mid + 1;
        }
    }

    return ans;
}



int main() {
    in = fopen("fact.in", "r");
    out = fopen("fact.out", "w");
    int p, i, nr = 1, sol;

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

    for (i = 1; i <= 9; i++, nr *= 10);

    sol =  cautare_binara(1, nr, p);
    fprintf(out, "%d", sol);
 
    return 0;
}