Cod sursa(job #2906569)

Utilizator DobraVictorDobra Victor Ioan DobraVictor Data 26 mai 2022 18:17:27
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <climits>

int main() {
    std::ifstream fin("fact.in");
    std::ofstream fout("fact.out");

    unsigned int p;
    fin >> p;

    unsigned int start = 1, end = UINT_MAX;

    while(start != end) {
        unsigned int mid = (start >> 1) + (end >> 1), num = 0;

        for(unsigned int pow = 5; pow < mid; pow *= 5)
            num += mid / pow;
        
        if(num == p) {
            start = mid;
            break;
        } else if(num < p) {
            start = mid + 1;
        } else {
            end = mid - 1;
        }
    }
    start -= start % 5;
    if(!start) start = 1;
    fout << start;

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

    return 0;
}