https://www.acmicpc.net/problem/1929
1. 난이도 실버3 (🥈)
2. 문제 해결 방법
1. 에라토스테네스의 체를 이용해 소수/합성수를 구분한다.
2. num의 value가 True인 수 중 m이상, n이하일 때만 출력하면 된다.
혹시 에라토스테네스를 잘 썼는데 자꾸만 틀렸다고 뜬다면, m이 1인 경우를 생각했는지 고려하면 좋을 것 같다.
(이거 놓쳐서 m부터 n+1 까지 반복문 돌렸다가 틀렸었음,,😭)
3. 내가 작성한 코드
m,n = map(int, input().split()) #m이상 n이하
total = [True] * (n+1)
for i in range(2, n+1):
if total[i] == True:
for j in range(2*i, n+1, i):
total[j] = False
for i in range(2,n+1):
if i >= m and i <= n:
if total[i] == True:
print(i)
#제곱근 이용
m,n = map(int,input().split())
num = [True] * (n+1)
check = int(n**0.5)
for i in range(2,check+1):
if num[i] == True:
for j in range(2*i, n+1, i):
num[j] = False
if m == 1: m += 1
for i in range(m,n+1):
if num[i] == True:
print(i)
에라토스테네스 체는 한 번씩 공부해주지 않으면 까먹는 것 같다.
종종 복습하러 돌아와겠삼~
메모
- 2달 만에 복습하러 왔는데 또 출력할 때 1을 고려 안 해줘서 틀렸다.
'🔅코딩테스트 공부🔅 > ❗백준' 카테고리의 다른 글
[백준] 1976번 여행 가자(python) (0) | 2023.02.27 |
---|---|
[백준] 1717번 집합의 표현(python) (0) | 2023.02.27 |
[백준] 2960번 에라토스테네스의 체(python) (0) | 2023.02.26 |
[백준] 14938번 서강그라운드(python) (0) | 2023.02.26 |
[백준] 2468번 안전 영역(python) (0) | 2023.02.26 |
댓글