수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다.
1부터 n사이의 소수 판별
def prime_list(n):
# 플래그를 생성하여 에라토스테네스의 체를 초기화 한다.
# 배열의 값이 1일 경우 아직 걸러지지 않은 상태이다.
arr = [1] * (n+1) # n을 포함하여 판별하기 위해 (n+1)개를 생성
# n의 최대 약수가 root(n)이하이기 때문에 i = sqrt(n)까지만 판별 한다
m = int(n ** 0.5)
for i in range(2, m + 1): # 체의 시작이 2부터 이기 때문에 2부터 확인
if sieve[i] == 1: # i가 소수인 경우(걸러지지 않음)
for j in range(i+i, n, i): # i 이후의 i의 배수들에 값을 0으로 저장
arr[j] = 0
# 소수의 목록을 반환
return [i for i in range(2, n) if sieve[i] == True]