Cod sursa(job #2076318)

Utilizator dariusdariusMarian Darius dariusdarius Data 26 noiembrie 2017 14:01:19
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <algorithm>
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;

int NumZeroes(int n) {
    int total = 0;
    while (n) {
        total += (n /= 5);
    }
    return total;
}

int main() {
    ifstream cin("fact.in");
    ofstream cout("fact.out");
    int p;
    cin >> p;
    int left = 1, right = 5 * p + 5, best = -1;
    while (left <= right) {
        int middle = (left + right) / 2;
        int num_zeroes = NumZeroes(middle);
        if (num_zeroes >= p) {
            if (num_zeroes == p) {
                best = middle;
            }
            right = middle - 1;
        } else {
            left = middle + 1;
        }
    }
    cout << best << "\n";
    return 0;
}