에라토스테네스의 체 - 소수 판별 알고리즘

케나·2022년 3월 10일
0
post-custom-banner
  1. 1을 제거한다
  2. 지워지지 않은 수 중 제일 작은 2를 소수로 채택하고, 나머지 2의 배수를 모두 지운다.
  3. 지워지지 않은 수 중 제일 작은 3을 소수로 채택하고, 나머지 3의 배수를 모두 지운다.
  4. 지워지지 않은 수 중 제일 작은 5를 소수로 채택하고, 나머지 5의 배수를 모두 지운다.
  5. (반복)

해당 과정을 반복하고, 남은 수들은 소수이다.

def solution(n):
    answer = 0
    for i in range(2, n+1): # 2~n까지 # 1은 소수가 아니므로
        for j in range(2, int(i**0.5)+1): # 1과 자기 자신으로는 무조건 나눠짐
            if i%j == 0: # 나누어지는 수가 있으면 소수가 아님
                break
        else: 
            answer += 1
    return answer

0개의 댓글