最大公约数
题目描述
输入2 个2000 以内的正整数𝑎 和𝑏,找到最大的这样正整数𝑋: 𝑋 可以被𝑎a和 𝑏整除。
输入
一行 2个正整数:𝑎 和 𝑏,范围[1,2000]。
输出
一个正整数。
样例输入
4 6
样例输出
2
#include <bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{
int r = a % b;
while(r > 0)
{
a = b;
b = r;
r = a % b;
}
return b;
}
int main()
{
int a,b;
cin >> a >> b;
cout << gcd(a,b) << endl;
return 0;
}
最小公倍数
题目描述
输入2 个2000 以内的正整数𝑎 和 𝑏,找到最小的这样正整数 𝑋: 𝑋 可以被 𝑎 和 𝑏整除。
输入
一行 2 个正整数: 𝑎和𝑏,范围在[1,2000]。
输出
一个正整数。
样例输入
4 6
样例输出
12
#include <bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{
int r = a % b;
while(r > 0)
{
a = b;
b = r;
r = a % b;
}
return b;
}
int main()
{
int a,b;
cin >> a >> b;
cout << gcd(a,b) * (a / gcd(a,b)) * (b / gcd(a,b)) << endl;
return 0;
}