-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogrammers_12940.swift
More file actions
54 lines (44 loc) · 1.05 KB
/
programmers_12940.swift
File metadata and controls
54 lines (44 loc) · 1.05 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//
// programmers_12940.swift
// algo
//
// Created by 이재은 on 27/06/2019.
// Copyright © 2019 이재은. All rights reserved.
//
import Foundation
// programmers 12940 최대공약수와 최소공배수
// 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환
// 두 수는 1이상 1000000이하의 자연수
// 풀이 1
func gcd( _ a: Int, _ b: Int) -> Int {
if b == 0 {
return a
} else {
if a > b {
return gcd(a-b, b)
} else {
return gcd(a, b-a)
}
}
}
func lcm(_ m: Int, _ n: Int) -> Int {
return m * n / gcd(m, n)
}
func solution(_ n:Int, _ m:Int) -> [Int] {
var result = [Int]()
result.append(gcd(n, m))
result.append(lcm(n, m))
return result
}
// 풀이 2
func gcd( _ a: Int, _ b: Int) -> Int {
let mod = a % b
return mod == 0 ? min(a, b) : gcd(b, mod)
}
func lcm(_ m: Int, _ n: Int) -> Int {
return m * n / gcd(m, n)
}
func solution(_ n:Int, _ m:Int) -> [Int] {
return [gcd(n, m), lcm(n, m)]
}
print(solution(3, 12))