Home [1일 1문제] 3월 20일 문제풀이
Post
Cancel

[1일 1문제] 3월 20일 문제풀이

✏️백준 1929번 : 소수 구하기

문제

나의 풀이

- Swift

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
let mn = readLine()!.split(separator: " ").map{ Int(String($0))!}
let m = mn[0]
let n = mn[1]
var nums = Array(repeating: true, count: n + 1)

nums[0] = false
nums[1] = false

if n > 1 {
    for i in (2...n) {
        if !nums[i] { continue }

        for j in stride(from: 2 * i, through: n, by: i) {
            nums[j] = false
        }
    }
}

for i in (m...n) {
    if nums[i] {
        print(i)
    }
}

- Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys
input = sys.stdin.readline

m, n = map(int, input().strip().split())
nums = [True] * (n+1)

nums[0] = False; nums[1] = False
for i in range(2, n+1):
    if not nums[i]:
        continue
    for j in range(2*i, n+1, i):
        nums[j] = False

for i in range(m, n+1):
    if nums[i]:
        print(i)

에라토스테네스의 체를 이용해 빠르게 소수를 구한다

This post is licensed under CC BY 4.0 by the author.