最大公约数

最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。

最小公倍数

两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。整数a,b的最小公倍数记为[a,b],同样的,a,b,c的最小公倍数记为[a,b,c],多个整数的最小公倍数也有同样的记号。
与最小公倍数相对应的概念是最大公约数,a,b的最大公约数记为(a,b)。关于最小公倍数与最大公约数,我们有这样的定理:(a,b)[a,b]=ab(a,b均为整数)。

CODE

#!
#include<bits/stdc++.h> // 万能头文件
#include <iostream>
using namespace std;

// 欧几里得算法-辗转相除法
int gcd(int a, int b) {
    return b ? gcd(b, a % b) : a;
}

int main()
{
    // a*b再除以最大公约数就是最小公倍数
    int a = 96, b = 54;
    int gcd1 = gcd(a, b);
    int gcd2 = __gcd(a, b); // 不是标准库函数
    int lcm = a / gcd1 * b; // 先除后乘防止溢出
    cout << gcd1 << endl;
    cout << gcd2 << endl;
    cout << lcm << endl;
    return 0;
}