반응형
문제
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
위 문제와 거의 동일한 문제입니다.
최소공배수 = 두 수의 곱 / 최대공약수 이므로
최대공약수를 유클리드 호제법으로 구한 후 최소공배수를 구해줄 수 있습니다.
소스코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)) |
후기
최소공배수 = 두 수의 곱 / 최대공약수 라는 식을 알고,
최대공약수를 구하는 방법을 안다면 쉽게 풀 수 있는 문제입니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 2485 가로수 (Swift) (0) | 2023.03.16 |
---|---|
[BOJ] 백준 1735 분수 합 (Swift) (0) | 2023.03.15 |
[BOJ] 백준 1934 최소공배수 (Swift) (0) | 2023.03.15 |
[BOJ] 백준 11729 하노이 탑 이동 순서 (Swift) (0) | 2023.03.15 |
[BOJ] 백준 2447 별찍기 - 10 (Swift) (0) | 2023.03.15 |