Cod sursa(job #2508468)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 12 decembrie 2019 11:38:14
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

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

long long q;

long long test(long long val){
    long long cnt = 0, pw5 = 5;
    while(val / pw5 > 0){
        cnt += val / pw5;
        pw5 *= 5;
    }
    return cnt;
}

int main()
{
    cin >> q;

    long long best = -1;
    long long st = q + 1;
    long long dr = 2000000000;
    while(st <= dr){
        long long mij = (st + dr) / 2;
        long long nr = test(mij);
        if(nr == q){
            best = mij;
            dr = mij - 1;
        }
        else if(nr < q)
            st = mij + 1;
        else dr = mij - 1;
    }

    if(best == -1)
        cout << "No solution\n";
    else cout << best << '\n';
    return 0;
}