반응형
해당 포스팅의 문제의 출처는 나동빈님의 이것이 취업을 위한 코딩 테스트 교재를 공부하면서 풀이할 때 본인의 사고 과정 흐름과 문제 풀이를 기록하기 위함 입니다.
문제설명
하단의 백준 문제 링크 참조
https://www.acmicpc.net/problem/1929
1929번: 소수 구하기
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
www.acmicpc.net
사고과정
- 주어진 범위 내의 다수의 소수를 출력하는 문제다. 바로 에라토스테네스의 체 알고리즘을 활용
- m = 1로 주어질 수도 있으므로, 애초에 숫자 1은 소수가 아님을 처리
풀이
import math
n, m = map(int, input().split())
array = [True for _ in range(n+1)]
for i in range(2, int(math.sqrt(n))+1):
if array[i] == True:
j = 2
while i * j <= n:
array[i*j] = False
j += 1
for i in range(m, n+1):
print(i)
반응형
'알고리즘 삽질장' 카테고리의 다른 글
[이코테] 그리디 - 만들 수 없는 금액 (0) | 2021.10.04 |
---|---|
[이코테] 암호 만들기 (0) | 2021.10.02 |
[이코테] 그래프 알고리즘 - 여행 계획 (0) | 2021.10.01 |
[이코테] 최단 경로 - 플로이드 (0) | 2021.10.01 |
[이코테] 그래프 알고리즘 - 커리큘럼 (0) | 2021.10.01 |