링크: https://www.acmicpc.net/problem/2581
[Swift] 소수 판별 알고리즘에서 에라토스테네스의 체를 사용하였습니다.
import Foundation
let M = Int(readLine()!)! // 최소
let N = Int(readLine()!)! // 최대
var array = Array(repeating: true, count: N + 1)
if Int(sqrt(Double(N))) > 1 {
for i in 2...Int(sqrt(Double(N))) {
if array[i] == true { // i가 소수인 경우 (남은 수인 경우)
// i를 제외한 i의 모든 배수를 지우기
var j = 2
while i * j <= N {
array[i * j] = false
j += 1
}
}
}
}
array[1] = false // 1은 소수가 아님.
var sum = 0
var m = Int.max
for i in M...N {
if array[i] {
sum += i
m = min(m, i)
}
}
if sum == 0 {
print("-1")
} else {
print(sum)
print(m)
}
'알고리즘' 카테고리의 다른 글
[Swift] 백준 14888번 연산자 끼워넣기 (0) | 2022.03.19 |
---|---|
[Swift] 백준 2609번 최대공약수와 최소공배수 (0) | 2022.03.18 |
[Swift] 백준 10818번 최소, 최대 (0) | 2022.03.18 |
[Swift] 백준 1292번 쉽게 푸는 문제 (0) | 2022.03.18 |
[Swift] 백준 1978번 소수 찾기 (0) | 2022.03.18 |
댓글