計算機概論|HW7

題目敘述

請實作一程式,此程式可以要求使用者輸入3組資料,請輸出每一組資料內三個數字的最小公倍數。

範例輸入

1
2
3
4
5
6
7
8
6 2 4  
> 12

1 5 3
> 15

8 2 16  
> 16

答題思路

最小公倍數(lcm,least common multiple)與最大公因數(gcd)的關係:

1
lcm(a, b) = a × b / gcd(a, b)

多個數字的最小公倍數:

1
lcm(a, b, c) = lcm(a, lcm(b, c))

參考答案

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>

int gcd(int, int) {
    return (a == 0)? b: gcd(b % a, a);
}

int lcm(int a, int b) {
    return a / gcd(a, b) * b;
}

int main() {
    int n = 3;
    
    while(n--) {
        int a, b, c;
        
        scanf("%d %d %d", &a, &b, &c);
        
        std::cout << lcm(lcm(a, b), c) << std::endl;
    }
    
    return 0;
}
最後更新 Oct 26, 2022 12:30 +0800