主要是为了记下gcd函数的代码!!!
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<vector>
#include<queue>
#include<set>
#include<map>
#include<cmath>
#define mst(ss,b) memset((ss),(b),sizeof(ss))
#define maxn 0x3f3f3f3f
using namespace std;
int x,y,sum;
int s[100001];
int gcd(int a,int b)//返回最大公约数
{
int temp;
while(b)
{
temp=a%b;
a=b;
b=temp;
}
return a;
}
int main()
{
cin.sync_with_stdio(false);
cin>>x>>y;
if(y%x!=0)
{
cout<<0<<endl;
return 0;
}
sum=0;
int k=1;
for(int i=x;i<=y;i+=x)
{
if(y%i==0)
{
s[k]=i;
k++;
}
}
k--;
for(int i=1;i<=k;i++)
{
for(int j=i+1;j<=k;j++)
{
if(s[j]*s[i]==x*y && gcd(s[i],s[j])==x)
sum+=2;
}
}
cout<<sum<<endl;
return 0;
}