#include<iostream>
using namespace std;
int gcd( int x, int y){//最大公约数
if (y==0) return x;
else return gcd(y,x%y);
}
int lcm(int a,int b)//最小公倍数
{
int i;
for(i=a;;i+=a)
{
if(i%b==0) return i;
}
}
int main()
{
int x,y,ans=0;
int a,b;
cin>>x>>y;
for(a=x;a<=y;a=a+x)
{
for(b=a;b<=y;b=b+x)
{
if(gcd(a,b)==x&&lcm(a,b)==y)
{
ans++;
}
}
}
ans=ans*2;//因为P、Q交换位置是一样的结果,所以可以模拟一半,结果ans直接乘2。如果全部暴力模拟,超时
cout<<ans;
return 0;
}