Cod sursa(job #2653764)

Utilizator cyg_dawidDavid Ghiberdic cyg_dawid Data 29 septembrie 2020 00:40:46
Problema GFact Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#define ll long long
#define NMAX 2000000005

using namespace std;

ifstream fin("gfact.in");
ofstream fout("gfact.out");

ll p, q;
ll b;
ll st, dr, med;
ll ans;
ll cnt;
ll aux;

bool ok() {
    cnt = 0;

    for(aux = p; aux <= med; aux *= p)
        cnt += med / aux;
}

ll bs() {
    ans = -1;
    st = 1; dr = NMAX;
    while(st <= dr) {
        med = (dr - st) / 2 + st;
        ok();
        if(cnt >= q) {
            dr = med - 1;
            ans = dr;
        } else
            st = med + 1;
    }
    return ans + 1;
}

int main()
{
    cnt = 0;
    fin >> p >> q;
    fout << bs();
    return 0;
}