본문 바로가기

PS/백준

[BOJ] 백준 13241 최소공배수 (Swift)

반응형

문제

https://www.acmicpc.net/problem/13241

 

13241번: 최소공배수

정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다

www.acmicpc.net

풀이

https://dev-mandos.tistory.com/156

 

[BOJ] 백준 1934 최소공배수 (Swift)

문제 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고

dev-mandos.tistory.com

위 문제와 거의 동일한 문제입니다.

최소공배수 = 두 수의 곱 / 최대공약수 이므로
최대공약수유클리드 호제법으로 구한 후 최소공배수를 구해줄 수 있습니다.

소스코드

func gcd(_ a: Int, _ b: Int) -> Int {
if b == 0 {
return a
}
return gcd(b, a % b)
}
let input = readLine()!.split(separator: " ").map { Int($0)! }
let a = input[0], b = input[1]
print(a * b / gcd(a, b))

후기

최소공배수 = 두 수의 곱 / 최대공약수 라는 식을 알고,
최대공약수
를 구하는 방법을 안다면 쉽게 풀 수 있는 문제입니다.

반응형