Cod sursa(job #2628102)

Utilizator iuliap1999Iulia Popa iuliap1999 Data 14 iunie 2020 13:59:40
Problema Factorial Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int no_zeros (int n) {
    int nr = 0;
    for (int p = 5; p <= n; p =p * 5) {
        nr += n / p;
    }
    return nr;
}

int binary_search (int p) {
    int left, right, mid, sol, x;
    left = 1;
    right = 10e6;
    if (p == 0) {
        return 1;
    }
    sol = -1;
    while (left <= right) {
        mid = (left + right) / 2;
        x = no_zeros (mid);
        if (x == p) {
            sol = mid;
            right = mid - 1;
        } else {
            if (x > p) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
    }
    return sol;
}
int main () {
    int p;
    f >> p;
    g << binary_search(p);
    return 0;
}