[C_MM179-易] 最大公因數與最小公倍數
問題描述
輸入四個整數數字,求出此四個整數數字的最大公因數與最小公倍數。例如:
10 12 18 20 最大公因數為 2 ,最小公倍數為 180 。
12 18 24 36 最大公因數為 6 ,最小公倍數為 72 。
輸入格式
輸入格式為一行包含四個整數值,每個數字之間以一個空白隔開。
輸出格式
輸出值為最大公因數與最小公倍數,每個數字之間以一個空白隔開。
Example
輸入四個整數數字,求出此四個整數數字的最大公因數與最小公倍數。例如:
10 12 18 20 最大公因數為 2 ,最小公倍數為 180 。
12 18 24 36 最大公因數為 6 ,最小公倍數為 72 。
輸入格式
輸入格式為一行包含四個整數值,每個數字之間以一個空白隔開。
輸出格式
輸出值為最大公因數與最小公倍數,每個數字之間以一個空白隔開。
Example
Sample Input: | Sample Output: |
10 12 18 20 12 18 24 36 | 2 180 6 72 |
- #include <iostream>
- #include <algorithm>
- using namespace std;
- int factor(int, int, int, int); //最大公因數
- int multiple(int, int, int, int); //最小公倍數
- int main() {
- // [C_MM179-易] 最大公因數與最小公倍數
- int n1, n2, n3, n4;
- cin >> n1 >> n2 >> n3 >> n4;
- cout << factor(n1, n2, n3, n4) << " " << multiple(n1, n2, n3, n4) << endl;
- return 0;
- }
- int factor(int a, int b, int c, int d){
- int s[4] = {a, b, c, d};
- sort(s, s+4);
- for(int i = s[0];i > 0;i--)
- {
- if(a%i==0 && b%i==0 && c%i==0 && d%i==0)
- {
- return i;
- break;
- }
- }
- }
- int multiple(int a, int b, int c, int d){
- int s[4] = {a, b, c, d};
- sort(s, s+4);
- for(int i = s[3];;i++)
- {
- if(i%a==0 && i%b==0 && i%c==0 && i%d==0)
- {
- return i;
- break;
- }
- }
- }
沒有留言:
張貼留言