Cod sursa(job #3319187)

Utilizator andreibancescuAndrei-Stefan Bancescu andreibancescu Data 31 octombrie 2025 01:04:03
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long f(long long n) {
    long long rez = 0;
    while(n >= 5) {
        n /= 5;
        rez += n;
    }
    return rez;
}

int main() {
    long long p;
    fin >> p;

    if(p == 0) {
        fout << 0;
        return 0;
    }

    long long st = 1, dr = 500000000LL, t, sol = -1;

    while(st <= dr) {
        t = (st + dr) / 2;
        long long val = f(t);

        if(val == p) {
            sol = t;
            dr = t - 1;
        }
        else if(val < p) {
            st = t + 1;
        }
        else {
            dr = t - 1;
        }
    }
    fout << sol;
    fin.close();
    fout.close();
    return 0;
}