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