Cod sursa(job #1029222)

Utilizator MoneaVladMonea Vlad MoneaVlad Data 15 noiembrie 2013 10:15:58
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;

ifstream in("fact.in");
ofstream out("fact.out");

int P, N;

int fact_nr_zero(int x) {
    int nr_zero = 0;
    for (int i = 5; i <= x; i = i * 5) {
        nr_zero = nr_zero + x / i;
    }

    return nr_zero;
}

int main() {
    in >> P;

    int st = 1, dr = 1000000000;
    while (st < dr - 1) {
        int mid = st + (dr - st) / 2;
        int nr_zero = fact_nr_zero(mid);
        if (nr_zero >= P) {
            dr = mid;
        } else if (nr_zero < P) {
            st = mid;
        }
    }

    if (fact_nr_zero(st) == P) {
        out << st << "\n";
    } else if (fact_nr_zero(dr) == P) {
        out << dr << "\n";
    } else {
        out << -1 << "\n";
    }
}