Cod sursa(job #2508472)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 12 decembrie 2019 11:42:18
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(pw5 <= val){
        cnt += (val / pw5);
        pw5 *= 5;
    }
    return cnt;
}

int main()
{
    cin >> q;

    long long best = -1;
    long long st = q + 1;
    long long dr = 20000000000;
    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;
}