#include <stdio.h>

// 递归函数：计算最大公约数
int gcd(int a, int b) {
    // 基线条件：当b为0时，返回a
    if (b == 0) {
        return a;
    }
    // 递归条件：递归计算b和a%b的最大公约数
    return gcd(b, a % b);
}

// 函数：计算最小公倍数
int lcm(int a, int b) {
    return (a * b) / gcd(a, b);
}

int main() {
    int num1 = 12, num2 = 18;
    
    printf("数字 %d 和 %d 的最大公约数是: %d\n", num1, num2, gcd(num1, num2));
    printf("数字 %d 和 %d 的最小公倍数是: %d\n", num1, num2, lcm(num1, num2));
    
    return 0;
}