- 1을 제거한다
- 지워지지 않은 수 중 제일 작은 2를 소수로 채택하고, 나머지 2의 배수를 모두 지운다.
- 지워지지 않은 수 중 제일 작은 3을 소수로 채택하고, 나머지 3의 배수를 모두 지운다.
- 지워지지 않은 수 중 제일 작은 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