1을 제외한, 2부터 지워지지 않은 수 중 가장 작은 수를 소수로 지정하고 배수를 지우는 과정을 반복한다.
1. 2를 소수로 채택하고, 자신을 제외한 2의 배수를 모두 지운다.
2. 다음 지워지지 않은 수 3을 소수로 채택하고, 3의 배수를 모두 지운다.
3. 다음 지워지지 않은 수 5를 소수로 채택하고, 5의 배수를 모두 지운다.
4. 이후 7, 11, 13 ..... 등 위의 과정을 반복하며 소수를 체크한다.
에라토스테네스의 체를 파이썬으로 구현해 보자.
def prime(n):
primes = []
a = [True] * (n - 1)
for i in range(2, n + 1):
if a[i - 2] == True:
primes.append(i)
for j in range(i * 2, n + 1, i):
a[j - 2] = False
return primes
출처
코딩으로 수학하기, https://wikidocs.net/21638
위키, https://ko.wikipedia.org/에라토스테네스의_체
https://velog.io/@htchoi1006