#include<iostream>
#include<cstdio>
using namespace std;
typedef long long LL;
LL gcd(LL a, LL b);
LL res;
LL x, y;//以y为最小公倍数,则满足条件的数一定小于y。
signed main()
{
cin>>x>>y;
LL t=x*y;
for(LL i=1;i<=y;i++) if(t%i==0&&gcd(i, t/i)==x) res++;
cout<<res<<endl;
}
LL gcd(LL a, LL b)
{
return b?gcd(b, a%b):a;
}
/*
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long LL;
LL gcd(LL a, LL b);
LL x, y;
signed main()
{
cin>>x>>y;
LL t=x*y, res=0;
for(LL i=1;i<=t/i;i++) if(t%i==0&&gcd(i, t/i)==x) res+=2;
cout<<res<<endl;
}
LL gcd(LL a, LL b)
{
return b?gcd(b, a%b):a;
}
*/
最大公约数和最小公倍数问题
最新推荐文章于 2023-09-12 21:13:21 发布
该博客主要展示了两个C++代码片段,用于计算两个数的最大公约数(GCD)和最小公倍数(LCM)。在主函数中,通过遍历并检查所有可能的因数来找出满足条件的LCM。GCD函数采用递归的欧几里得算法实现。博主通过计算x和y的乘积以及检查除以i的余数,找到所有与x的GCD等于x的i值,并统计这些值的数量。
摘要由CSDN通过智能技术生成