蒟蒻代码,不喜勿喷
思路:先双层 for 循环枚举两个数,用 gcd 求出两数的最大公约数,根据两数之积等于最小公倍数乘以最大公约数算出可行解并计数。可能是 for 循环还可以再优化但是蒟蒻不知道咋优化了……求助
#include<bits/stdc++.h>
using namespace std;
long long gcd(int x,int y)
{
if(y)
{
return gcd(y,x%y);
}
else return x;
}
int main()
{
int x,y;
cin >> x >> y;
long long p,q;
int cnt = 0;
for(int i=0;i<x+y;i++)
{
for(int j=0;j<x+y;j++)
{
if(gcd(i,j) == x && i*j==x*y) cnt ++;
}
}
cout << cnt << endl;
return 0;
}