최대 1 분 소요

문제 링크

내 풀이

def sosu(num):
    for i in range(2, int(num **(1/2)) + 1):
        if num % i == 0:
            return 0
    return 1

def solution(n):
    result = 0
    for i in range(2,n+1):
        result += sosu(i)
        
    return result

다른 풀이

def solution(n):
    num=set(range(2,n+1))

    for i in range(2,n+1):
        if i in num:
            num-=set(range(2*i,n+1,i))
    return len(num)

풀이 해석

에라토스테네스의 체를 활용한 풀이

배울 점

  • 소수 문제에서의 “에라토스테네스의 체” 의 활용

댓글남기기