这道题我们可以用一个判断互质数的子程序来做,代码如下:
#include<bits/stdc++.h>//万能头文件
using namespace std;//好习惯
bool f(int m,int n)//做一个用于判断是否为互质数的子程序
{
bool boo=1;//初始定一个bool类型的函数为1
int x;
if(m>n) x=n;
else x=m;
for(int i=2;i<=x;i++)//开始判断
{
if(m%i==0&&n%i==0)//如果那两个数能除尽一个不为一的数
{
boo=0;//boo等于0
break;
}
}
return boo;
}
int main()
{
int x,y,sum=0,a=0,m=0,n=0;//定义几个函数
cin >> x >> y;//输入
if(y%x==0) a=y/x;//如果y/x的余数等于0那么a=y/x
for(int i=1; i<sqrt(a); i++)//小于等于a的平方根
{
m=i;
if(a%i==0)//如果a除以一个数的余数等于0
{
n=a/i;//那么n=a/i
if(f(m,n)==1) sum++;//如果n和m互质,sum++
}
}
if(x==y) cout << '1';//如果x=y就输出1
else if(x!=y) cout << sum*2; //否则输出sum乘以2
return 0; //好习惯
}
希望有大佬指点指点,也希望能关注关注,感谢。