分析:X0(最大公因数),(Y0)最小公倍数,Y0=X0*X1*X2
P=X0*X1,Q=X0*X2,其中X1与X2互质,便符合题意。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int gcd(int x,int y)
{
int k=x%y;
while(k)
{
x=y;
y=k;
k=x%y;
}
return y;
}
int main()
{
ll x,y;
cin>>x>>y;
ll k=y/x;
if(x*k!=y) //卡第四个点
{
cout<<0;
return 0;
}
int ans=0;
for(int i=1;i<=sqrt(k);i++)
{
if(k%i==0)
{
int g=k/i;
if(gcd(i,g)==1)
{
ans++;
if(i!=g)
ans++;
}
}
}
cout<<ans;
return 0;
}