#include<bits/stdc++.h>
using namespace std;
 
#define int long long
typedef pair<int,int>pint;
typedef vector<int>vint;
typedef vector<pint>vpint;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define all(v) (v).begin(),(v).end()
#define rep(i,n) for(int i=0;i<(n);i++)
#define reps(i,f,n) for(int i=(f);i<(n);i++)
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();it++)
template<class T,class U>inline void chmin(T &t,U f){if(t>f)t=f;}
template<class T,class U>inline void chmax(T &t,U f){if(t<f)t=f;}
 
int gcd(int a,int b){
    return b?gcd(b,a%b):a;
}
 
signed main(){
    int p,q;
    cin>>p>>q;
    int g=gcd(p,q);
    q/=g;
    for(int i=2;i*i<=q;i++){
        if(q%i)continue;
        while(q%i==0)q/=i;
        q*=i;
    }
    cout<<q<<endl;
    return 0;
}