Cod sursa(job #2914530)

Utilizator alin.gabrielAlin Gabriel Arhip alin.gabriel Data 20 iulie 2022 10:49:56
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
using namespace std;

long zeroes(long n) {
    long count = 0;

    for(long f = 5 ; f <= n ; f *= 5)
        count += n / f;

    return count;
}

long findN(int p) {

    long v[10] = {1, 5, 10, 15, 20, -1, 25, 30, 35, 40};

    if (p < 10)
        return v[p];

    long lo = 0;
    long hi = 5 * p;

    while (lo < hi) {
        long mid = (lo + hi) >> 1;

        if (zeroes(mid) >= p)
            hi = mid;
        else
            lo = mid + 1;
    }
    
    if (zeroes(lo) != p)
        return -1;

    return lo;
}

int main() {
    ifstream fin("fact.in");
    ofstream fout("fact.out");
    int p;
    fin>>p;
    fout<<findN(p);
    return 0;
}