洛谷P1029 最大公约数和最小公倍数问题
作者:互联网
题目:
思路:两个数的乘积等于这两个数的最大公约数和最小公倍数的乘积!!!所以用欧几里得算法求出最大公约数,再,枚举。
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int gcd(int a,int b)
{
if(b!=0)
return gcd(b,a%b);
else
return a;
}
int main()
{
int x,y;
cin>>x>>y;
int z=x*y;
int sum=0;
if(x==y)
sum--;
for(int i=1;i<=sqrt(z);i++)//开平方,优化
if(z%i==0&&gcd(i,z/i)==x)
sum+=2;
cout<<sum<<endl;
return 0;
}
(Just do it!)
发布了19 篇原创文章 · 获赞 0 · 访问量 275
私信
关注
标签:洛谷,gcd,公倍数,sum,int,最大公约数,include,P1029 来源: https://blog.csdn.net/fendouzhilu666/article/details/104499570