[Algorithm] 백준 - 1929번 소수구하기 (Swift) (에라토스테네스의 체)

2024. 4. 14. 23:27· → Problems
목차
  1. 문제 소개
  2. 문제 풀이

문제 소개

1929번: 소수 구하기

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

www.acmicpc.net

첫째 줄에 m, n이 주어지면 m이상 n이하의 자연수를 출력하는 문제이다.
 

문제 풀이

2부터 시작해서 배수를 소거해나가는 "에라토스테네스의 체" 알고리즘을 사용했다. 배열을 편하게 index와 숫자를 동일시해서 Array(0...n)으로 배열을 초기화 해주었다. 그리고 어떠한 수의 배수가 된다면 1로 변경하였다.
 
Int(sqrt(Double(n))) + 1 이 부분은 어떤 의미이냐면 2부터 n까지의 모든 숫자의 배수를 하나하나 대조해보는 것이 아니라 100인 경우 10까지만 생각하면 된다는 것이다. 왜냐하면 11의 경우 121부터가 검사할 수있는 최소의 수이기 때문이다. 이전의 22나 44, 55는 2, 4, 5의 배수이기 때문이다. 121부터가 새로운 수이다.

import Foundation

let input = readLine()!.split(separator: " ").map { Int(String($0))! }
let (m, n) = (input[0], input[1])

var primeNumber = Array(0...n)

for i in 2...Int(sqrt(Double(n))) {
    if primeNumber[i] != 1 {
        var j = 2
        while i * j <= n {
            primeNumber[i * j] = 1
            j += 1
        }
    }
}

for i in m...n {
    if primeNumber[i] != 1 {
        print(primeNumber[i])
    }
}

'→ Problems' 카테고리의 다른 글

[Algorithm] 백준 - 카잉 달력 (Swift)  (0) 2024.04.22
[Algorithm] 백준 - 2156번 포도주 시식 (Swift)  (1) 2024.04.18
[Algorithm] 백준 - 1918번 후위표기식 (postfix)  (0) 2024.04.14
[Algorithm] 백준 - 17299번 오등큰수 (Swift)  (0) 2024.04.13
[Algorithm] 백준 - 10799번 쇠막대기 (Swift) (텍스트 대치)  (0) 2024.04.13
  1. 문제 소개
  2. 문제 풀이
'→ Problems' 카테고리의 다른 글
  • [Algorithm] 백준 - 카잉 달력 (Swift)
  • [Algorithm] 백준 - 2156번 포도주 시식 (Swift)
  • [Algorithm] 백준 - 1918번 후위표기식 (postfix)
  • [Algorithm] 백준 - 17299번 오등큰수 (Swift)
Swift librarian
Swift librarian
Swift librarian
Swift Library
Swift librarian
전체
오늘
어제
  • 분류 전체보기 (231)
    • 📺 Programming (5)
    • → Architecture (2)
    • → Design Pattern (0)
    • → Computer Science (15)
    • ⚙️ Algorithm (0)
    • → 알고리즘 관련 (22)
    • → Problems (104)
    • 🚀 Project (0)
    • → 알쏭달쏭 (0)
    • → Shook (2)
    • → Solver (8)
    • → Taster (7)
    • → Outline (4)
    • → Pointer (2)
    • → Guesser (3)
    • 🦜 Swift (2)
    • → Swift Archive (12)
    • → Swift Study (12)
    • → Xcode (6)
    • 🧰 Framework (0)
    • → Foundation (1)
    • → UIKit (2)
    • → SwiftUI (3)
    • → CoreData (2)
    • → MapKit (1)
    • → CoreHaptic (1)
    • → User Notification (1)
    • → StoreKit (2)
    • 🏛️ Library (0)
    • → TCA (0)
    • 🐈‍⬛ Git (8)
    • → Git의 원리 (2)
    • → Git 심화 (1)
    • 📦 Other (1)
    • 👦🏻 Log (0)

최근 글

hELLO · Designed By 정상우.v4.2.2
Swift librarian
[Algorithm] 백준 - 1929번 소수구하기 (Swift) (에라토스테네스의 체)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.