에라토스테네스의 체는 소수(prime number)를 구할 때 가장 기본적으로 사용되는 알고리즘 입니다.
소수를 구하는 것은 기본적으로 완전탐색을 사용하는데, 이미 검사한 수는 스킵하여 효율성을 높였습니다.
+ 소수는 0과 1을 제외한 2부터 시작됩니다. 코드에서 prime[0], prime[1]이 True여도 이는 소수가 아니므로 사용할 때 주의해야 합니다.
파이썬 코드
N = 10000 # N-1번까지의 소수 구하기
prime = [True]*(N+1)
for i in range(2, int(N**0.5)): # 2 부터 N-1의 제곱근 까지 검사
if prime[i]:
for j in range(i+i, N+1, i):
prime[j] = False
매우 간단하지만 막상 사용하려고 하면 쉽게 떠오르지 않습니다
'코딩테스트 > 알고리즘' 카테고리의 다른 글
주요 알고리즘 설명 및 문제 모음 (0) | 2021.07.07 |
---|---|
[알고리즘] 최단경로 - 다익스트라 알고리즘 (Dijkstra's algorithm) (0) | 2021.03.10 |
[알고리즘] 파이썬에서 순열 조합 구하기 - itertools, permutations, combinations (0) | 2021.02.27 |
[알고리즘] LCS (Longest Common Subsequence) 문제 (0) | 2021.02.15 |
[알고리즘] 동적 계획법 (Dynamic Programming) 코딩테스트 대비 정리 (0) | 2021.02.02 |
댓글