Pagini recente » Cod sursa (job #1817507) | Cod sursa (job #2400587) | Cod sursa (job #2301449) | Cod sursa (job #1592234) | Cod sursa (job #248998)
Cod sursa(job #248998)
#include <stdio.h>
#define N 100000005
long long p,q;
void citire()
{
scanf("%lld%lld",&p,&q);
}
int calcul(int r,int k)
{
int i,j,fact,t;
for (i=k; i<=N; i+=k)
{
fact=0;
for (j=1; j<=i; j++)
if (j%k==0)
{
t=j;
while (t%k==0)
{
t/=k;
fact++;
}
}
if (fact==r)
return i;
}
return 0;
}
void desc()
{
int i,putere;
long long nr=0,max=0;
for (i=2; i*i<=p ;i++)
if (p%i==0)
{
putere=0;
while (p%i==0)
{
p/=i;
putere++;
}
nr=calcul(putere*q,i);
if (nr>max)
max=nr;
}
if (p!=1)
{
nr=calcul(1*q,p);
if (nr>max)
max=nr;
}
printf("%lld",max);
}
int main()
{
freopen("gfact.in","r",stdin);
freopen("gfact.out","w",stdout);
citire();
desc();
return 0;
}