题目描述
给定两个正整数 a,b,求他们的最大公约数(gcd)和最小公倍数(lcm)。这两个整数均在 int 范围内。
输入格式
两个整数 a 和 b,用空格分隔。
输出格式
两个整数表示答案,用空格隔开。
输入输出样例
输入 #1
6 15输出 #1
3 30
#include <bits/stdc++.h>
using namespace std;
// 使用欧几里得算法计算最大公约数
long long gcd(long long a, long long b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
long long lcm(long long a, long long b) {
return (a * b) / gcd(a, b);
}
int main() {
/*
计算两个数的最大公约数(GCD)和最小公倍数(LCM)
计算最大公约数通常使用欧几里得算法(辗转相除法)
而最小公倍数可以通过两个数的乘积除以它们的最大公约数来得到。
最大公约数:
欧几里得算法,也称为辗转相除法,是一种用于计算两个非负整数a和b的最大公约数(GCD)的非常高效的算法。
两个整数