題目敘述
請實作一程式,此程式可以要求使用者輸入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;
}
|