Skip to content

原理

gcd(a,b)=gcd(b,amodb)lcm(a,b)=(ab)÷gcd(a,b)

对于两个数a和b,不断迭代计算c=a%b,将每次计算得到的c作为下一次的b,上一次的被除数作为下一次的除数。

cpp
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
    int a = 30;
    int b = 18;
    while(a % b != 0){
        int c = a % b;
        a = b;
        b = c;
    }
    cout << b << endl;
    cout << (30*18)/b << endl;
    return 0;
}