https://www.acmicpc.net/problem/4948
바로 전에 풀었던 소수찾기 문제에 약간 손을 보면 된다. 이 문제 역시 에라토스테네스의 체를 사용하여 시간을 단축시키 풀 수 있다.
import Foundation
while true{
var sum = 0
var input = Int(readLine()!)!
var n = 2*input
var numList = [Int]()
var boolList = Array(repeating: false, count: n + 1)
for i in 2...n {
if !boolList[i] {
numList.append(i)
for j in stride(from: i * 2, through: n, by: i) {
boolList[j] = true
}
}
}
for prime in numList {
if prime > input{
sum += 1
}
}
print(sum)
}
'Algorithm > 백준' 카테고리의 다른 글
백준 3009: 네 번째 점(Swift) (0) | 2021.09.01 |
---|---|
백준 9020번: 골드바흐의 추측(Swift) (0) | 2021.08.29 |
백준 1929번: 소수 구하기(Swift) (0) | 2021.08.27 |
백준 11653번: 소인수분해 (Swift) (0) | 2021.08.25 |
백준 2581번: 소수(Swift) (0) | 2021.08.17 |