https://school.programmers.co.kr/learn/courses/30/lessons/12921
import math
def is_prime(n):
for i in range(2, int(math.sqrt(n)) + 1): # 제곱근까지 소수 판별
if n % i == 0:
return False
return True
def solution(n):
answer = 0
for i in range(2, n + 1):
if is_prime(i) == True:
answer += 1
return answer
def solution(n):
answer = 0
# 1
array = [True for i in range(n + 1)]
# 약수의 성질에 따라 가운데 약수(제곱근)까지만 확인
for i in range(2, int(n ** (1/2)) + 1):
if array[i] == True: # i가 소수인 경우
# 2 (i를 제외한 모든 숫자 false)
j = 2
while i * j <= n:
array[i * j] = False
j += 1
# 3
return array.count(True) - 2