Pagini recente » Cod sursa (job #1385216) | Cod sursa (job #2856367) | Cod sursa (job #3041875) | Cod sursa (job #3244092) | Cod sursa (job #3252230)
// https://www.infoarena.ro/problema/gfact
#include <bits/stdc++.h>
using namespace std;
using ull = unsigned long long;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
ull p, q;
ull factP(const ull n)
{
ull x = 0;
for (ull i = p; i <= n; i *= p)
x += n / i;
return x;
}
ull searchInput(const ull st, const ull dr)
{
const ull mid = (st + dr) / 2ull, val = factP(mid);
if (val == q)
return mid;
if (val > q)
return searchInput(st, mid - 1);
return searchInput(mid + 1, dr);
}
int main()
{
ull sol;
fin >> p >> q;
sol = searchInput(0, ULLONG_MAX - 1);
if (sol != 1)
sol -= sol % p;
fout << sol;
return 0;
}