Cod sursa(job #2614442)

Utilizator dragonfire45Andrew Alexander dragonfire45 Data 11 mai 2020 19:06:06
Problema Factorial Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int NumberOfZeros(int number) {
    int denominator = 5;
    int numberOfZeros = 0;
    while (denominator <= number) {
        numberOfZeros += number / denominator;
        denominator *= 5;
    }
    return numberOfZeros;
}

int main() {

    int P; // reprezinta numarul de zerouri
    fin >> P;

    int left = 1;
    int right = 100000000;
    while (left <= right) {
        int mid = (left + right) >> 1;
        int zeros = NumberOfZeros(mid);
        if (P == zeros) {
            mid -= mid % 5;
            fout << mid;
            return 0;
        } else if (P < mid) {
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }
    
    fout << -1;

    fin.close();
    fout.close();

    return 0;
}