Algorithm/Programmers

[Python] 소수 찾기

느낌표 공장장 2021. 6. 18. 18:58
def solution(n):
    
    number = [False, False] + [True] * n
    answer = []
    
    for i in range(2, n+1) :
        if number[i] :
            answer.append(i)
            for j in range(2*i, n+1, i) :
                number[j] = False
                
    return len(answer)

풀이

★ 에라스토테네스의 체를 활용해야 효율성테스트를 통과할 수 있다. ★

 

2021.06.18 - [Algorithm/개념] - 에라토스테네스의 체(Eratosthenes' sieve )

 

에라토스테네스의 체(Eratosthenes' sieve )

에라토스테네스의 체(Eratosthenes' sieve ) 그리스의 수학자이자 지리학자인 에라토스테네스가 고안한 소수를 찾는 방법이다. 에라토스테네스의 체 알고리즘 1.  1부터 n까지의 자연수를 전부 나

wizdom.tistory.com


참고할만한 풀이

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)

set을 활용하여 차집합으로 문제를 해결하였다.

'Algorithm > Programmers' 카테고리의 다른 글

[Python] 여행 경로  (0) 2021.06.28
[Python] 네트워크  (0) 2021.06.20
[Python] 압축  (0) 2021.06.15
[Python] 방금 그 곡  (0) 2021.06.14
[Python] 캐시  (0) 2021.06.13