題目敘述
請實作一程式,此程式可以要求使用者不斷地輸入一組資料,直到輸入的資料值中有一值不為正整數時結束程式,每一組資料的格式如下所示:
請由小到大輸出d1 d2 d3的前k個最小公倍數
範例輸入
1
2
3
4
5
6
7
8
9
10
|
3 29 51 13
> 19227 38454 57681
4 26 28 54
> 9828 19656 29484 39312
5 77 86 5
> 33110 66220 99330 132440 165550
0 1 2 3
|
答題思路
略
參考答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <iostream>
using namespace std;
int gcd(int a, int b) {
return (a == 0)? b: gcd(b % a, a);
}
int lcm(int a, int b) {
return a / gcd(a, b) * b;
}
int main() {
int k;
while(cin >> k) {
int a, b, c;
cin >> a >> b >> c;
int l = lcm(a, lcm(b, c));
for(int i=1; i<=k; i++)
cout << l*i << ' ';
cout << endl;
}
return 0;
}
|