카테고리 없음

[ 파이썬 ] 소수 찾기

뚜비두빱 2020. 5. 3. 17:58

https://programmers.co.kr/learn/courses/30/lessons/12921

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

에라토스테네스의 체 방법으로 빠르게 소수를 구할 수 있다. 

 

🤓 [ 풀이에 쓰인 파이썬 문법 정리 ]

 

set(집합)

파이썬 자료형인 set인데 다음과 같은 특징을 가진다.

  • set은 수학에서 이야기하는 집합과 비슷합니다.
  • 순서가 없고, 집합안에서는 unique한 값을 가집니다.
  • 그리고 mutable 객체입니다.

 

[ MyCode ]

def solution (n) :
    fact = [True] * n
    Rist = []
    for i in range (2,n+1):
        if (fact[i]):
            Rist.append(i)
            for j in range (2,n):
                if i*j >= (n+1):
                    break
                if fact[i*j]:
                    fact[i*j] = False
    return len(Rist)

[ GoodCode ]

def solution (n) :
    num = set(range(2,n+1)) # 2부터 n까지의 set생성 
    
    for i in range(2,n+1) :
        if i in num : # set안에 i가 있으면 
            num -= set(range(2*i,n+1,i)) # i의 2배부터, i의 배수들을 빼준다.
    return len(num) # 나머지 return