【正经题解】最大公约数和最小公倍数问题
2024-02-20 18:21:10
发布于:浙江
46阅读
0回复
0点赞
最大公约数和最小公倍数的乘积就是原两个数的积
#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
int m,n,ans,flag;
ll gcd(ll x,ll y)
{
if(y==0) {return x;}
return gcd(y,x%y);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=sqrt(1ll*m*n);i++)
{
if((1ll*n*m)%i==0&&gcd(i,(1ll*n*m)/i)==n)
{
ans++;
if(1ll*i*i==1ll*n*m) flag=1;
}
}
cout<<ans*2-flag;//最后乘以二是因为只遍历了一半
return 0;
}
这里空空如也
有帮助,赞一个