BOJ/백준-1929-python

cosmos·2021년 4월 14일
2
post-thumbnail

문제📖

풀이🙏

  • 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다.
  • M이상 N이하의 소수가 하나 이상 입력만 주어진다.
  • 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.
    -> 에라토스테네스의 체 이론을 이용하여 소수를 구하였다.
    -> join함수를 이용해 list내의 요소들을 한 줄에 하나씩 출력하였다.
    -> join함수 내부 요소는 str형이여야해서 list 내의 int형 요소들을 map을 통해 형변환 시켰다.

코드💻

# boj, 1929 : 소수 구하기, python
import sys

def get_sosu(start, end):
    a = [False, False] + [True] * (end-1)
    primes = []

    for i in range(2, end+1):
        if a[i]:
            primes.append(i)
        for j in range(2*i, end+1, i):
            a[j] = False
            
    result = [i for i in primes if i >= start]
            
    return '\n'.join(map(str, result))
    

M, N = map(int, sys.stdin.readline().split())

print(get_sosu(M, N))

결과😎

문제 출처 && 깃허브📝

https://www.acmicpc.net/problem/1929
github

0개의 댓글