Pagini recente » Cod sursa (job #2276969) | Cod sursa (job #883007) | Cod sursa (job #2065970) | Cod sursa (job #2476927) | Cod sursa (job #183828)
Cod sursa(job #183828)
#include<cstdio>
long long a,b,rez,i,j,aux;
inline bool good(long long x)
{
x=x*i;
int nr=0;
while(x/i)
nr+=x/i,x/=i;
return nr>=j;
}
inline long long search(long long st,long long dr)
{
int mij;
while(st<dr)
{
mij=(st+dr)>>1;
if(good(mij))
dr=mij;
else
st=mij+1;
}
return st;
}
int main()
{
freopen("gfact.in","r",stdin);
freopen("gfact.out","w",stdout);
scanf("%lld %lld",&a,&b);
i=2;
while(i*i<=a)
{
j=0;
while(a%i==0)
a/=i,++j;
if(j)
{
j=j*b;
aux=search(1,j)*i;
if(aux>rez) rez=aux;
}
}
if(a!=1)
{
i=a;
j=b;
aux=search(1,b)*i;
if(aux>rez) rez=aux;
}
printf("%lld\n",aux);
fclose(stdout);
return 0;
}