#include<iostream>
#include<math.h>
using namespace std;
//最大公约数函数
int gcd(int a, int b)
{
return b > 0 ? gcd(b, a%b): a;
}
//最小公倍数函数
int lcm(int a, int b)
{
int sum;
sum = a * b / gcd(a, b);
return sum;
}
int main()
{
int a, b, ans = 0;
cin >> a >> b;
//因为是从1到sqrt(a*b)和b到sqrt(a*b),所以只算出了一半的答案,最终答案乘以2就行
for(int i = 1; i <= sqrt(a*b); i ++){
for(int j = b; j >= sqrt(a*b); j --){
//符合题意答案就加一
if(gcd(i,j) == a && lcm(i,j) == b){
ans ++;
}
}
}
cout << ans * 2;
return 0;
}