Cod sursa(job #2291707)

Utilizator sabinpocrisSabin P sabinpocris Data 28 noiembrie 2018 15:28:12
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;

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

bool number_of_zeros(int nr, int n){
    int rez = 0;
    for(int i = 5; i <= nr ; i *= 5){
        rez += nr / i;
    }

    return (rez >= n);
}

int main(){
    int n, fact;

    in >> n;

    if (n == 0){
        out << 1 << "\n";
        return 0;
    }

    if (n == 1){
        out << "5\n";
        return 0;
    }

    int low = 0;
    int high = 5 * n;

    while (low < high){
        int mid = (low + high) / 2;

        if (number_of_zeros(mid, n))
            high = mid;
        else 
            low = mid + 1;
    }
    
    if (number_of_zeros(low, n))
        out << low << endl;
    else 
        out << "-1\n";

    return 0;
}