题目描述
输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
输入样例
一行,两个整数 m 和 n。
5 7
输出样例
一行,输出两个数的最大公约数和最小公倍数。
1 35
算法1
C++ 代码
#include <iostream>
using namespace std;
using ll = long long;
ll gcd(ll a,ll b)
{
return b == 0 ? a : gcd(b,a % b);
}
ll lcm(ll a,ll b)
{
return a * b / gcd(a,b);
}
int main()
{
int n,m;
cin >> n >> m;
cout << gcd(n,m) << " " << lcm(n,m);
return 0;
}
算法2
C++ 代码
#include <iostream>
using namespace std;
int gcd(int a,int b)
{
while(b != 0)
{
int c = a % b;
a = b;
b = c;
}
return a;
}
int main()
{
int n,m;
cin >> n >> m;
cout << gcd(n,m) << " " << n * m / gcd(n,m);
return 0;
}