Pagini recente » Cod sursa (job #1557176) | Cod sursa (job #1216860) | Cod sursa (job #2758170) | Cod sursa (job #1238943) | Cod sursa (job #1414848)
#include<cstdio>
struct elem{long long baza,putere;};
elem v[25];
long long rasp[25];
int main()
{
freopen("gfact.in","r",stdin);
freopen("gfact.out","w",stdout);
long long p,q;
scanf("%lld %lld ",&p,&q);
long long baza=1,nr_elem=0;
while(baza*baza<=p && p!=1)
{
baza++;
long long put=0;
while(p%baza==0)
{
put++;
p/=baza;
}
if(put>0)
{
nr_elem++;
v[nr_elem].baza=baza;
v[nr_elem].putere=put;
}
}
if(p!=1)
{
nr_elem++;
v[nr_elem].baza=p;
v[nr_elem].putere=1;
}
for(long long i=1;i<=nr_elem;i++)
{
long long o=0;
for(long long j=1;j<=q*v[i].putere;j++)
{
o++;
long long z=j;
while(z%v[i].baza==0)
{
o++;
z/=v[i].baza;
}
if(o>=q*v[i].putere)
{
rasp[i]=j*v[i].baza;
j=q*v[i].putere+2;
}
}
}
long long max=0;
for(long long i=1;i<=nr_elem;i++)
if(rasp[i]>max)
max=rasp[i];
printf("%lld",max);
return 0;
}