Sieve of Eratosthenes
개요
특정 범위의 소수들을 빠르게 구하는 알고리즘으로,
소수는
에라토스테네스의 체는 소수의 배수들을 제거하는 방식으로 소수를 빠르게 구합니다.
def sieve(n):
is_prime = [True] * (n + 1)
is_prime[1] = False
for i in range(2, n + 1):
if not is_prime[i]:
continue
for j in range(i + i, n + 1, i):
is_prime[j] = False
return is_prime위와 같은 방식으로 is_prime을 완성한 뒤, is_prime[i]가 참이면 i는 소수입니다.
시간 복잡도의 증명
꼭 알아야 하는 것은 아니며 넘어가도 됩니다.
그렇다면
소수 정리에 따르면
따라서 소수의 역수들의 합은