Pagini recente » Cod sursa (job #407664) | Cod sursa (job #3263346) | Cod sursa (job #1504304) | Cod sursa (job #953467) | Cod sursa (job #183826)
Cod sursa(job #183826)
#include<cstdio>
long long a,b,rez,i,j,aux;
int good(int x)
{
x=x*i;
int nr=0;
while(x/i)
nr+=x/i,x/=i;
return nr>=j;
}
int search(int st,int 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("%d %d",&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;
}