输入两个正整数 x_0, y_0x0,y0,求出满足下列条件的 P, QP,Q 的个数:
P,QP,Q 是正整数。
要求 P, QP,Q 以 x_0x0 为最大公约数,以 y_0y0 为最小公倍数。
试求:满足条件的所有可能的 P, QP,Q 的个数。
输入格式
一行两个正整数 x_0, y_0x0,y0。
输出格式
一行一个数,表示求出满足条件的 P, QP,Q 的个数。
#include<bits/stdc++.h>
using namespace std;
int n,m,ans,x,y,f[25],sc[25];
int main()
{
int n,m;
cin>>n>>m;
int num=m*n;//其实x*y/两个数的最大公约数就等于最小公倍数,所以反推即可
if(m==n)//如果两个数相同那么只有一种,就是他们的本身;
ans--;
for(int i=1;i*i<=num;i++)
{
if(num%i==0&&__gcd(i,num/i)==n)
ans+=2;
}
cout<<ans;
return 0;
}