Pagini recente » Cod sursa (job #1541121) | Cod sursa (job #1033492) | Cod sursa (job #87652) | Cod sursa (job #334251) | Cod sursa (job #2356415)
#include <cstdio>
#include <cmath>
using namespace std;
typedef long long ll;
ll p , q;
inline bool verif(ll med)
{
ll nr = 0;
ll x = p;
while(x <= med)
{
nr += (med/x);
x *= p;
}
return (nr >= q);
}
int main()
{
freopen("gfact.in","r",stdin);
freopen("gfact.out","w",stdout);
scanf("%I64d%I64d",&p,&q);
ll st,dr,med;
st = 1;
dr = 2000000000000000;
ll ans = -1;
while(st<=dr)
{
med=(st+dr)>>1;
if(verif(med))
{
ans = med;
dr = med-1;
}
else
st = med+1;
}
printf("%lld",ans);
return 0;
}